我目前正在编写自己的解释性编程语言,没有使用任何特殊的库。 目前,我尝试使用函数。我的目标是能够将一个功能放到另一个功能中:
output(sum(3,6), getsomething())
我的lexer将其切割成碎片:
['output', '(', 'sum', '(', '3', ',', '6', ')', ',', 'getsomething', '(', ')', ')']
现在我想这样对它们进行分类:
所以我的翻译可以按正确的顺序运行它们
我真的不知道从哪里开始,谢谢你的帮助。
我不确定这是否是您想要的,但我的想法如下:
创建一个堆栈并开始将列表中的元素(从一开始)推入其中。当你按下“)”时,将所有内容弹出到第一个“(”,然后再弹出一次(以了解要执行的函数)。注意,你弹出了一个函数及其变量,这些函数和变量独立于行的其余部分
您可以执行该函数,将它返回的值推送到堆栈中,然后继续推列表的其余元素,并对它们执行相同的操作
相关问题 更多 >
编程相关推荐