Can somebody please tell me what is recursive about the
*markupStatement*production in the following grammar? The problem
disappears when I remove
the expression NT symbol from argument, but this is required for my
language. Is it solvable without having to enable backtracking?
*markupStatement: markup+ expression ';' *
* **| markup+ regularStatement ';' *
* **| markup+ embedding ';'*
* **| markup+ ';' *
* **;*

where..

markup: IDCON attributes arguments?
-> ^( MARKUP IDCON attributes arguments? ) ;
attributes: attribute*
-> ^( ATTRIBUTES attribute* );
attribute: '#' IDCON // ID attribute
| '.' IDCON // Class attribute
| '$' IDCON // Name attribute
| ':' IDCON // Type attribute
| '@' NATCON // Width attribute
| '@' NATCON '%' NATCON // Width-height attribute
;

arguments: '(' argument? ( ',' argument )* ')' ;

*argument:** **expression*
* **| IDCON '=' expression ;*

expression: ( IDCON | NATCON | TEXT | SYMBOLCON
| '[' expression? ( ',' expression )* ']' // List
| '{' keyValuePair? ( ',' keyValuePair )* '}' // Record
) ( '+' expression | '.' IDCON )* ;
keyValuePair: IDCON ':' expression ;

regularStatement:    'echo' expression ';' ;

embedding: PRETEXT embed textTail ;
embed: markup* expression ;
textTail: POSTTEXT | MIDTEXT embed textTail ;

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe: 
http://www.antlr.org/mailman/options/antlr-interest/your-email-address

Reply via email to