如何在Antlr语法中删除间接左递归

时间:2018-12-27 20:44:27

标签: antlr antlr4 left-recursion

我的语法如下:

expression : scalar 
           | vector;
scalar : <bunch of rules>
       | vector[scalar] #VectorIndex
       ;
vector : <bunch of rules>
       | scalar ('*' | '+' | '-') vector
       ;

是否有可能从此语法中删除间接左递归?用其所有子规则替换vector会使语法过于重复和混乱。

0 个答案:

没有答案