[antlr-interest] one rewrite rule for all alternative literals
Bart Kiers
bkiers at gmail.com
Tue Oct 25 02:51:59 PDT 2011
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> 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