ANTLR树中未知数量的子项

时间:2016-01-10 18:55:11

标签: java regex parsing tree antlr

我正在研究计算器的解析器,它还需要构建一个树。

例如:

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

这样的东西

但我不确定为*表达式构建树

2 个答案:

答案 0 :(得分:0)

类似的东西:

FUNCTION: FUNCTION_NAME LEFTBRACKET PARAMETERS RIGHTBRACKET;
PARAMETERS: exp | exp COMMA PARAMEGERS;

可能会有所帮助。

答案 1 :(得分:0)

您所做的工作正常,孩子们将被列入您可以通过data_group访问的列表。