[antlr-interest] Q: Peek at token without consumeing
Gustaf Johansson
gustaf.j at gmail.com
Sun May 22 10:06:37 PDT 2011
Hi,
I have a tricky problem that i cant seem to get right.
I have a static semantics rule which says " ';' is optional if
preceding statement ends with '}' or the statement is last in list"
Basically meaning either have LA(-1) == '}' or LA(1) == '}' or we
should expect a ';'.
This rule is used in many places throughout the grammar so a generic
approach would be best.
I would like this case to produce good error messages since missing
';' is quite common.
Can i use a "standard" rule and mark it somehow to not consume a token
if it shouldnt (like the below example)?
end:
: ';'
| '}' { doNotConsume() }
| ( LA(-1) == '}' ) { doNotConsume() } ;
BR Gustaf
More information about the antlr-interest
mailing list