我正在研究计算器的解析器,它还需要构建一个树。
例如:
exp returns[Tree tree]e1=exp e2=operator e3=exp{
Tree tempTree = ($e2.tree);
tempTree.insertChild ($e1.tree);
tempTree.insertChild ($e3.tree);
$tree = tempTree;
}
我想知道如何在不假设子项数的情况下为多参数函数构建树。
例如:max(a,b,c,d,..)
我想过使用像FUNCTION LEFTBRACKET exp (COMMA exp)* RIGHTBRACKET
但我不确定为*表达式构建树
答案 0 :(得分:0)
类似的东西:
FUNCTION: FUNCTION_NAME LEFTBRACKET PARAMETERS RIGHTBRACKET;
PARAMETERS: exp | exp COMMA PARAMEGERS;
可能会有所帮助。
答案 1 :(得分:0)
您所做的工作正常,孩子们将被列入您可以通过data_group
访问的列表。