首页 > 解决方案 > Python:按重要性对字符串中的函数进行排序

问题描述

我目前正在编写自己的解释性编程语言,而不使用任何特殊库。目前我尝试使用函数。我的目标是能够将一个功能放在另一个功能中

output(sum(3,6), getsomething())

我的词法分析器把它切成小块:

['output', '(', 'sum', '(', '3', ',', '6', ')', ',', 'getsomething', '(', ')', ')']

现在我想以这种方式对它们进行排序:

  1. 总和(带参数 3 和 6)
  2. getsomething(没有参数)
  3. 输出(返回 sum 和 getsomething)

所以我的解释器可以按正确的顺序运行它们。

我真的不知道从哪里开始,感谢您的帮助。

标签: pythonfunctionlexer

解决方案


我不确定这是否是您想要的,但我的想法如下:

创建一个堆栈并开始将列表的元素(从一开始)推入其中。当您按下“)”时,弹出所有内容直到第一个“(”,然后再弹出一次(以了解要执行的函数)。请注意,您弹出了一个函数及其变量,它们独立于该行的其余部分。

您可以执行该函数,将它返回的值压入堆栈,然后继续压入列表的其余元素并对它们执行相同的操作。


推荐阅读