问题标签 [gforth]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
io - 如何将输入保存到文件中?
我使用在 linux 机器上运行的 gforth。
对于我的一个迷你应用程序,我想注册来自几个不同用户输入的格式化文本输出。
这是我使用的 INPUT$:
我认为这是正确的。我是这样测试的:
我的文件定义:
最终目标是将非常小的文件构建为:
其中每个数据都是用户输入 ( asked 3times to insert text & a second wave of 3 inputs
)
我没有找到有关如何使用文本输入来构建文件的文档。
如何调用我的堆栈数据以将它们复制到文本文件格式?(使用 type 只会将文本回显到我的终端)
forth - 在 Gforth 中创建新字典条目 + 其他操作的语法糖
我是 Forth 新手,正在尝试开发一些(伪有用的)玩具来学习语言。我想精简以下操作:
通过以下(更紧凑的)指令
或者,换句话说:
- "->" 解析以下两个名字
- 为第一个名称创建一个字典条目“车辆”,用于类似 2 变量的结构,如果它不存在,将为其分配一个字符串
- 对于第二个名称,创建另一个条目“cars<”(注意 <),如果它不存在,也是一个 2 变量
- 然后将字符串“cars”添加(而不是替换)到变量车辆
- 并将字符串“vehicles”添加到变量 cars<
我做了一个黑客攻击,使用字符串操作和评估来获得这种行为......
我认为存在另一种更直接、更优雅的方式,但这是我目前能做的最好的方式。有什么建议么?
networking - 如何从 Gforth 的网站读取原始代码?
我想要一个词
其中“add n”是站点名称缓冲区,“buff max”是应该读取 ASCII 文本的缓冲区,“n”是读取的字节数,flag
如果操作成功则为真。
这在 Linux、Android 或 Windows 的 Gforth 中是否可行?
hex - 使用 Forth 解码以十六进制编码的消息
我试图在 Forth 中转换以十六进制编码的消息。下面三个字就出来了。它可以工作,但看起来很丑陋,而且不必要地复杂。
此外,这不是一个真正的解决方案,因为我希望将结果存储在另一个字符串中以进行进一步操作(而不是像现在这样在屏幕上键入),但我不知道如何添加一个数字(代表一个字符) 到一个地址...
那么,即使是很长的消息,您认为必须如何做到这一点?什么是最好的方法?
forth - GNU FORTH 有编辑器吗?
开始 FORTH的第 3 章说,
现在您已经创建了一个“当前”块,您可以通过简单地输入单词来列出它
L
。与 不同LIST
,L
不希望按块号进行;相反,它列出了当前块。
当我跑步时180 LIST
,我得到
但是当我运行时L
,我得到一个错误
我究竟做错了什么?
io - FORTH 包括与负载?
INCLUDE
文件 IO 很明显。但我很困惑它是如何与LOAD
. INCLUDE
没有 a怎么办LOAD
?从书中,
INCLUDE xxx ( -- )
加载文本文件 xxx(编译或执行)。
LOAD ( n -- )
加载磁盘块(编译或执行)。
io - FORTH 写入“第四个磁盘”
你有一个单词在第四个被调用USE
,它将创建一个文件。
USE xxx ( -- )
将 OS 文本文件 xxx 指定为“Forth 磁盘”。
但是,尚不清楚如何从交互式会话中写入该FORTH 磁盘。有诸如FLUSH
and之类的动词,UPDATE
但它们都没有看到做任何事情。我正在使用 gforth。我正在会话中创建单词并使用它们。我不明白 FORTH 磁盘在这种情况下是如何工作的。听起来像 R's save.image()
,除了我无法保存任何东西。您能否提供一系列命令,导致将某些内容写入 的参数USE
?
if-statement - 使用 FORTH 的 IF 语句会产生“解释只编译的单词”
我正在阅读开始:4。决定,决定...... 我可以跑42 42 = .
可以预见的-1
是,我得到了两个人的赞美。true
但是,如果我将 a 压入42
堆栈,然后运行
我希望foobar
被输出,但事实并非如此。相反,我得到
这里发生了什么?
bit-shift - FORTH 为什么负的 LSHIFT 会这样表现?
为了娱乐,我做了
我可以在这里看到本机类型与有意义的类型是互补的,因为 (true is -1
)。然而这让我大吃一惊。
这里发生了什么?
loops - 在 Gforth 中执行无限循环时遇到问题
表示如下输入的正确样式是什么,例如 Gforth 中的输入?
以我目前对网上资源的理解,应该是:
但是,当我尝试用 Gforth 解释这一点时,我得到一个错误: