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