[antlr-interest] one rewrite rule for all alternative literals
Christian
chwchw at gmx.de
Tue Oct 25 03:06:58 PDT 2011
Wonderful! Thank you, Bart. I have already seen this technique a cupple
of times. I try to apply it the next times if I get stuck again.
Am 25.10.2011 11:51, schrieb Bart Kiers:
> Hi Christian,
>
> Because you can't assign a label to an "OR-ed" group. You need to do
> something similar to this:
>
> class_modifier
> : mod -> ^(CLASS_MODIFIER mod)
> ;
>
> mod
> : 'new'
> | 'public'
> | 'protected'
> | 'internal'
> | 'private'
> | 'abstract'
> | 'sealed'
> | 'static'
> | 'unsafe'
> ;
>
> Or like this:
>
> foo
> : class_modifier ID -> ^(FOO ID ^(CLASS_MODIFIER class_modifier))
> ;
>
> class_modifier
> : 'new'
> | 'public'
> | 'protected'
> | 'internal'
> | 'private'
> | 'abstract'
> | 'sealed'
> | 'static'
> | 'unsafe'
> ;
>
> Regards,
>
> Bart.
>
>
> On Tue, Oct 25, 2011 at 11:44 AM, Christian <chwchw at gmx.de
> <mailto:chwchw at gmx.de>> wrote:
>
> Hi community,
>
> I want to use only one rewrite rule for all alternatives within a
> rule.
> Here is an example of what I want to do, but what does not work:
>
> class_modifier
> :
> m=('new'
> | 'public'
> | 'protected'
> | 'internal'
> | 'private'
> | 'abstract'
> | 'sealed'
> | 'static'
> | 'unsafe') -> ^(CLASS_MODIFIER $m)
> ;
>
> Why does this not work and how can I solve my problem?
>
> Greetings,
> Christian
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe:
> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>
>
More information about the antlr-interest
mailing list