[antlr-interest] forcing parenthesis (no precedence)

David-Sarah Hopwood david-sarah at jacaranda.org
Thu Jul 16 07:55:38 PDT 2009


Stuart Dootson wrote:
> On Thu, Jul 16, 2009 at 1:21 PM, hakan eryargi <hakan.eryargi at gmail.com> wrote:
>> i will really appreciate a simple sample if possible :)
> 
> Simple grammar that mimics the Ada approach:
> 
> grammar test;
> 
> program  :   expression EOF
>          ;
> 
> expression
>          :  primary ( ('AND' primary ) + | ( 'OR' primary ) +)
>          ;

This doesn't allow a single <primary> that does not use AND/OR as an
<expression>. You want something like:

  expression
           :  primary ( ('AND' primary ) + | ( 'OR' primary ) +)?
           ;

(It's also preferable to declare all of the tokens, as in my other reply.)

> primary  :  VARIABLE
>          |  'TRUE'
>          |  'FALSE'
>          |  '(' expression ')'
>          ;
> 
> VARIABLE :  'a'..'z' +
>          ;

-- 
David-Sarah Hopwood  ⚥  http://davidsarah.livejournal.com



More information about the antlr-interest mailing list