[antlr-interest] Fragment for Parserrules

Alexander Gängel alexander at gaengel.de
Thu Jan 11 03:01:41 PST 2007


Here is a small Grammar to show my Problem:

    grammar small;
    start    :(Identifier |    '->' keyword    )+;
    keyword:'test'|'test2';
    Identifier:('a'..'z'|'A'..'Z'|'_') (Letter)*;
    fragment
    Letter    :'a'..'z'|'A'..'Z'|'0'..'9'|'_'|'$';
    WS    :(' '|'\r'|'\t'|'\u000C'|'\n') {$channel=HIDDEN;};

for this Grammar input like this is true:

word word -> test word -> test2

but I would like that if the Input is just test it would also be true
but then be identified as an Identifier not a keyword.

ok in this example I could put my keyword also into the start rule but
in actual grammar I'm working on I would use it with a lot of keyword
(about 20) inside  a Syntactic Predicates so I would prefer to make the
rule keyword a fragment so it#s just recognized inside the start rule
when a -> is found.

Ok I hope you now understand what I want.

maybe there is a better way to do such a thing with Antlr I just don't
know about it.

Alexander


Kay Roepke schrieb:
>
> On 10. Jan 2007, at 12:27 , Alexander Gängel wrote:
>
>> I have some parserrule which should only be applied at special points,
>> the problem why I can't inline it because I use in an Syntactic
>> Predicate.
>>
>> or is there some better way I just don't see
>
> could you post some sample code/grammar?
>
> I can't really see what you want to do here, that's easier to discuss
> if we have some sample stuff to
> talk about ;)
>
> cheers,
>
> -k
> --Kay Röpke
> http://classdump.org/
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20070111/1ee05355/attachment.html 


More information about the antlr-interest mailing list