antlr 从三个不同的可能选项创建子节点
antlr creating a child node from three different possible options
找不到真正的答案。注意:如果重要的话,请使用 antlr 3 而不是 4。
尝试根据三种不同的可能表达式构造子节点。
(variable)* (n_expr|d_expr|s_expr)+
{
} -> ^(FORMULA_DEF n_expr|d_expr|s_expr)
抛出错误,因为我无法将 (n_expr|d_expr|s_expr) 用于子节点。
将它们全部添加到公共子树列表中:
(variable)* (e+=num_expr|e+=date_expr|e+=string_expr)+
-> ^(FORMULA_DEF INTEGER RCALL $e+)
或者如果你想为每个 expr
一个新的 FORMULA_DEF
(variable)* (e+=num_expr|e+=date_expr|e+=string_expr)+
-> ^(FORMULA_DEF INTEGER RCALL $e)+
找不到真正的答案。注意:如果重要的话,请使用 antlr 3 而不是 4。 尝试根据三种不同的可能表达式构造子节点。
(variable)* (n_expr|d_expr|s_expr)+
{
} -> ^(FORMULA_DEF n_expr|d_expr|s_expr)
抛出错误,因为我无法将 (n_expr|d_expr|s_expr) 用于子节点。
将它们全部添加到公共子树列表中:
(variable)* (e+=num_expr|e+=date_expr|e+=string_expr)+
-> ^(FORMULA_DEF INTEGER RCALL $e+)
或者如果你想为每个 expr
一个新的FORMULA_DEF
(variable)* (e+=num_expr|e+=date_expr|e+=string_expr)+
-> ^(FORMULA_DEF INTEGER RCALL $e)+