0
無法真正找到對此的答案。注意:如果有問題,使用antlr 3而不是4。 試圖根據三種不同的可能表達式構造一個子節點。antlr從三種不同的可能選項創建子節點
(variable)* (n_expr|d_expr|s_expr)+
{
} -> ^(FORMULA_DEF n_expr|d_expr|s_expr)
引發錯誤,因爲我無法使用(n_expr | d_expr | s_expr)作爲子節點。
什麼是電子定義爲新
FORMULA_DEF
? – clearner'e'是ANTLR變量,ANTLR應該將其定義爲生成的代碼中的樹節點列表。不需要用語法明確地定義它 –
(e + = ... | e + = ... | e + = ..)可以正常工作。但通過做^(FORMULA_DEF INTEGER RCALL e +),我得到了一個未定義規則的引用:e。 – clearner