anchor.diff:  grammar Tiger;
   
   options {
  -  language = C;
     k = 1;
     output = AST;
   }
  
positive.code: 
  after_ID
    : ':='                                                                        -> ^(ASSIGNE)
    | '(' (p1=ID (',' p2=ID)*)? ')'                                               -> ^(FUNC_CALL ($p1 $p2*)?)
    ;
  
  
  
negative.code:   ;
  
  or
    : '|'? and                                                                    -> ^(OR and*)
    ;
  
  and
    : '&'? comparison                                                             -> ^(AND comparison*)
    ;
  
  comparison
    : ('='|'<>'|'<'|'>'|'<='|'>=')? addition                                      -> ^(COMP addition*)
    ;
  
  addition
    : ('+'|'-')? multiplication                                                    -> ^(ADD multiplication*)
    ;
  multiplication
    : ('*'|'/')? atom                                                              -> ^(MULT atom)
    ;
  