Jim,
Don't you mean that the ! operator is not supported in the Lexer?
Phil would need a parser rule to discard the token. Something like:
//Convert ID from a fragment to a token
ID: ALPHA (ALPHA | INT)*;
EXT: 'EXT.';
external_call: EXT! ID;
rule: call=external_call '(' { stack.push(new
FuncName($call.text)); } (expressList { ... } )? ')'
expressList: ...;
Colin Macdonald
Senior Consultant
_____________________________________
GROUP Business Software
Phone: 770 720 1300 ext: 6132
http://www.gbs.com/
From: "Jim Idle" <[email protected]>
To: <[email protected]>
Date: 2010-11-17 11:19 AM
Subject: Re: [antlr-interest] Is '!' operator working with ANTLR
3.1.2
Sent by: [email protected]
Remember antlr.markmail.org
This operator is not supported in ANTLR3 for performance reasons. But if
the
pieces you don't want are at the start or end, then you can just change
the
start and/or end points of the token.
Jim
> -----Original Message-----
> From: [email protected] [mailto:antlr-interest-
> [email protected]] On Behalf Of Philippe Frankson
> Sent: Wednesday, November 17, 2010 4:51 AM
> To: [email protected]
> Subject: [antlr-interest] Is '!' operator working with ANTLR 3.1.2
>
>
> When I call my parser with -> EXT.MyFunc() The value returned by
> $EXTERNAL_CALL.getText() is 'EXT.MyFunc' where I would expect to have
> only 'MyFunc' (because I'm using the '!' operator in the lexer here
> below).
>
> fragment INT : ('0'..'9');
> fragment ALPHA :
('a'..'z'|'A'..'Z'|'_');
> fragment ID : ALPHA (ALPHA |
INT)*;
>
> EXTERNAL_CALL: 'EXT.'! ID;
>
>
> rule: EXTERNAL_CALL '(' { stack.push(new
> FuncName($EXTERNAL_CALL.getText())); } (expressList { ... } )? ')'
> expressList: ...;
>
>
> Any idea why the '!' operator looks like not working ? What am I doing
> wrong ?
>
> Thank you.
> Philippe Frankson
>
>
> 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
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.