Greetings!

On Tue, 2011-06-07 at 07:41 -0400, David Smith wrote:
> I'm parsing a grammar in which the semicolon on the end of a line is 
> optional. So two of the statement rules might be:
>     |   (ID GETS expr SEMI) => ID GETS expr SEMI -> ^(GETS ID expr SEMI)
>     |   (ID GETS) => ID GETS expr -> ^(GETS ID expr)
> Since this occurs with a number of different assignment statements, I 
> would really like to collapse this into one rule that looks something 
> like this:
>     |   (ID GETS) => ID GETS e=expr (s=SEMI)? -> ^(GETS ID $e $s)
> but every implementation I can think of either refuses to generate 
> the grammar or, as in the case above, generates the grammar but 
> decides that the variable 's' is unknown.
> Is there a any way to achieve this?

Have you tried:

    |   (ID GETS) => ID GETS e=expr (s=SEMI)? -> ^(GETS ID $e $s?)

is the semicolon really necessary in the tree? (e.g. does the presence
of the semicolon actually change the meaning of of the statement?)

perhaps:

    | (ID GETS) => ID GETS^ expr SEMI!?


Hope this helps...
   -jbb



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