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

Reply via email to