TinyPG功能实现

TinyPG Function Implementation

最近对解析器生成器和编译器编译器很感兴趣。为了尝试,我下载了 TinyPG,现在有了一种简单的语言来解析字符串和浮点数。现在,我对实现带参数的简单函数很好奇。我设法通过计算单表达式主体并将其存储在 table 中来制作无参数函数,然后在调用函数时检索该值。我将如何着手在 TinyPG(或任何其他解析器生成器)中实现带有参数的简单的单一表达式函数?

好吧,其实我是无意中找到了这个问题的答案。我偶然发现了 Tiny Expression Evaluator,它是用 TinyPG 编写的。为了测试函数功能,我输入了斐波那契数列 fib(x) := x=0 ? 0 : (x=1 ? 1 : fib(x - 2) + fib(x - 1)),它按预期运行。现在我得弄清楚他们是怎么做到的。