At 23:41 15/09/2009, Kevin Twidle wrote:
>I have been using my PonderTalk (Smalltalk like) language for a
>while now and I have just noticed that leaving a block empty
>causes a parser error. This is with ANTLRWorks 1.2.3. I have
>refined the grammar to show the point. The problem line is
>^(statements). With that taken out the parsing works.
[...]
>sentence:WORD | block;
>block:'[' sentences ']'
>-> ^(sentences)
>;
You should define an imaginary token to use as the root
here. Things go a little strange when you try to use a
multi-token rule as the root, especially (as you've found) if it's
optional.
tokens { BLOCK; }
block : '[' sentences ']'
-> ^(BLOCK sentences)
;
Using imaginary tokens to indicate structure like this also helps
when reading the tree (either via a tree parser or directly).
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
-~----------~----~----~----~------~----~------~--~---