Does ANTLR always backtrack if I use a syntactic predicates?
Terence Parr No. ANTLR only backtracks if it cannot decide between the predicated alternative and the others in that alternative block. So if you have:
stat : (decl)=>decl | expr | ifstat ;
then upon input "9", ANTLR will not backtrack as "9" cannot possibly start a decl--parsing will immediately proceed to the "expr" alternative without backtracking.