ANTLR4 yet another left recursion -


i'm ashamed ask... wrote grammar language typecast int bool , vice versa.

logic_expr : expr not? or | , expr        | expr '|' expr smaller | larger        | number        | number_short        | ident        | logic_defined        ; math_expr : expr add | sub expr       | number       | number_short       | ident       | logic_full       ; expr : logic_expr      | math_expr      | ident      | logic_defined      | '(' expr ')'      ; 

but antlr tells me "the following sets of rules mutually left-recursive [logic_expr, expr, math_expr]" cant understand what's wrong in grammar?

as of antlr 4.2.2, antlr 4 not support grammars contain indirect left recursion. limitation addressed issue #522, i'm hopeful makes antlr 4.3.

since antlr 4 supports direct left recursion, can solve problem inlining logic_expr , math_expr rules. edited 3 broken alternatives adding parentheses omitted. did not remove ambiguity present in original rules.

expr        : expr not? (or | and) expr        | expr '|' expr (smaller | larger)        | number        | number_short        | ident        | logic_defined        | expr (add | sub) expr        | number        | number_short        | ident        | logic_full        | ident        | logic_defined        | '(' expr ')'        ; 

Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -