如何在Bison中解析多个争论的内置函数

时间:2013-07-09 12:40:04

标签: bison flex-lexer

在'flex& bison',有一个高级计算器示例,可以创建AST。计算器可以支持内置函数,如'sqrt','log'等。所有内置函数都是单个参数。如果我希望计算器支持多参数内置函数,例如“pow(a, b)”,我该怎么做?

1 个答案:

答案 0 :(得分:1)

您的AST计算器中已经有双参数函数,例如'+',它将2个表达式作为参数。你想要的只是做同样的事情,即你想要解析'frn(expr_a,expr_b)'的'expr_a + expr_b'。请注意,这适用于您指定的内置函数。它对于用户指定的函数来说会变得更加毛茸茸但是在p上。书中有61个。

结果AST:

       +
      / \             
     /   \ 
expr_a    expr_b


      fcn
      / \             
     /   \ 
expr_a    expr_b

我希望这有帮助,即使我不提供源代码。我不是Flex& S的专家。野牛...