grammar T;
 
program
       : LPAREN program? RPAREN
       ;
 
LPAREN : '(';
RPAREN : ')';
WS     : (' '|'\t'|'\n'|'\r')+ { skip(); } ;
 
Jim
 
From: [email protected] 
[mailto:[email protected]] On Behalf Of Hans-Martin Adorf
Sent: Saturday, December 12, 2009 9:14 AM
To: [email protected]
Subject: [antlr-interest] eliminating left-recursion in the PAREN grammar
 
Folks,

I am working with a toy grammar as a stepping stone for more complicated 
grammars. It is a grammar for the well-known PAREN language consisting only of 
matched nested parantheses. In other words the language consists of non-empty 
strings of the form "()", "(())", "()()", etc.

The grammar I am toying with reads
grammar PAREN;
tokens {
     L     = '(' ;
     R     = ')' ;
}
s : L R | L s R | s s;

ANTLR has the foreseeable problem with left-recursion. I was able to fix the 
grammar for use with ANTLR by using an EBNF-notation

grammar ParenEBNF;
tokens {
    L    = '(' ;
    R    = ')' ;
}
s : L s? R s? ;

However, I would still be interested in a purely recursive grammar that avoids 
left-recursion. Theory states that it should be possible to rewrite the grammar 
such that it avoids left-recursion (and iterations). But I am lacking the 
skills to achieve this, despite the apparent simplicity of the language above. 

Any hints are welcome.

Regards
Hans-Martin Adorf




--

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