Hi,

This does not seem to work.

I believe the problem is that "( . '}' ) =>" looks forward one token,
when what i need is to look backwards.
Can this be acomplished in a similar manner?

BR G

On Sun, May 22, 2011 at 8:52 PM, Ben Corne <[email protected]> wrote:
> I think you can make use of rule precedence for this:
> end
>   : ( '}' ) => /* this won't consume */
>   | ( . '}' ) => /* checks 1 token/char and won't consume */
>   | ';'
>   ;
> 2011/5/22 Gustaf Johansson <[email protected]>
>>
>> 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
>>
>> List: http://www.antlr.org/mailman/listinfo/antlr-interest
>> Unsubscribe:
>> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>
>

List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe: 
http://www.antlr.org/mailman/options/antlr-interest/your-email-address

-- 
You received this message because you are subscribed to the Google Groups 
"il-antlr-interest" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en.

Reply via email to