我要实现Forth的话VALUE
和 TO
在 RPC/8 上(在 Minecraft mod 中的模拟计算机)。只要我在编译时不使用它们,我的最佳尝试为我提供了一组可以正常工作的单词。更具体地说VALUE
有效,但 TO
才不是。
: VALUE CREATE , DOES> @ ;
: TO ' 3 + ! ;
我已经尝试了所有我能想到的方法来让它工作,我最好的尝试让我得到了这个:
['] NameOfAValue 3 + !
注意处理器不是纯6502而是65EL02 ,65816 的自定义变体.
编辑 #1:不知何故,我忘记了调用 CREATE in value。它应该一直在那里。
编辑 #2:我也收到了
3
和 +
在 TO... 中切换。它应该一直是相反的。
最佳答案
最简单的解决方案是
VARIABLE TO-MESSAGE \ 0 : FROM , 1 : TO .
: TO 1 TO-MESSAGE ! ;
: VALUE CREATE , DOES> TO-MESSAGE @ IF ! ELSE @ THEN
0 TO_MESSAGE ! ;
它仅使用 CORE 词并且绝对是标准的。它只在解释和编译模式下工作,因为在输入流中没有可疑的前瞻。
关于forth - 如何定义 VALUE 和 TO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14914877/