Hi Jeroen, I would rewrite the markupStatement like this:
markupStatement : markup+ (expression | regularStatement | embedding)? ';' That way its valid again. The markup+ in each of your choices is the problem now I guess. Martijn On Sat, Aug 29, 2009 at 12:57 PM, Jeroen van Schagen<[email protected]> wrote: > 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 ; > > List: http://www.antlr.org/mailman/listinfo/antlr-interest > Unsubscribe: > http://www.antlr.org/mailman/options/antlr-interest/your-email-address > > 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 -~----------~----~----~----~------~----~------~--~---
