[antlr-interest] parser backtrack issue
    Gavin Lambert 
    antlr at mirality.co.nz
       
    Fri Jan 18 18:59:18 PST 2008
    
    
  
At 15:44 19/01/2008, Ashish wrote:
>I defined boolean expressions as
>booleanExpressions
>      :  booleanExpression ( BOOLEAN_OR  booleanExpression )*
>      |  booleanExpression ( BOOLEAN_AND booleanExpression )*
That's only going to match a chain of ANDs or a chain or ORs.  It 
won't match a mixed sequence of ANDs and ORs, for example.  You 
probably want this:
booleanExpressions
   :  booleanExpression ((BOOLEAN_OR | BOOLEAN_AND) 
booleanExpression)*
   ;
Or this:
booleanExpressions
   :  booleanExpression
      ( BOOLEAN_OR booleanExpressions
      | BOOLEAN_AND booleanExpressions
      )?
   ;
    
    
More information about the antlr-interest
mailing list