Actually, i get

/tmp $ a T.g
error(211): T.g:3:3: [fatal] rule a has non-LL(*) decision due to recursive 
rule invocations reachable from alts 1,2.  Resolve by left-factoring or using 
syntactic predicates or using backtrack=true option.

for

tree grammar T;
options {ASTLabelType=CommonTree;}
a : ^(ID recurse ID ID) SEMI
  | ^(ID recurse ID) SEMI
    {System.out.println($ID+", "+$b.text);}
  ;
recurse : '(' recurse ')' | INT ;

Ter
On Nov 21, 2010, at 2:07 PM, Terence Parr wrote:

> Hi Jamie, i'm looking at this to see if there is a bug i can fix for 3.3.  So 
> antlr silently accepted the first snippet even though it couldn't produce a 
> DFA?
> Ter
> On Apr 1, 2010, at 10:19 AM, James Briant wrote:
> 
>> Once I managed to get ANTLR to give me the error message, the problem was
>> easy to solve. I had these two lines:
>> 
>> |   ^(IF parenthesizedExpression statement statement)
>> |   ^(IF parenthesizedExpression statement)
>> 
>> And I just changed it to:
>> 
>> |   ^(IF parenthesizedExpression statement statement?)
>> 
>> And now it works fine.
>> 
>> So the problem was definitely an exception in the DFA constructor that was
>> then caught, but ignored, with no warning or error. Once I forced it to
>> report the error, I could fix it.
>> 
>> Jamie
>> 
>> 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