python - Python:按重要性对字符串中的函数进行排序
问题描述
我目前正在编写自己的解释性编程语言,而不使用任何特殊库。目前我尝试使用函数。我的目标是能够将一个功能放在另一个功能中:
output(sum(3,6), getsomething())
我的词法分析器把它切成小块:
['output', '(', 'sum', '(', '3', ',', '6', ')', ',', 'getsomething', '(', ')', ')']
现在我想以这种方式对它们进行排序:
- 总和(带参数 3 和 6)
- getsomething(没有参数)
- 输出(返回 sum 和 getsomething)
所以我的解释器可以按正确的顺序运行它们。
我真的不知道从哪里开始,感谢您的帮助。
解决方案
我不确定这是否是您想要的,但我的想法如下:
创建一个堆栈并开始将列表的元素(从一开始)推入其中。当您按下“)”时,弹出所有内容直到第一个“(”,然后再弹出一次(以了解要执行的函数)。请注意,您弹出了一个函数及其变量,它们独立于该行的其余部分。
您可以执行该函数,将它返回的值压入堆栈,然后继续压入列表的其余元素并对它们执行相同的操作。