anchor.diff:    ;
   formal: OBJECTID ':' TYPEID; /* method argument */
   expression
  -  : OBJECTID ASSIGNMENT expression #assignment
  -  | expression ('@' TYPEID)? '.' OBJECTID '(' (expression (',' expression)*)* ')' /* call super class method */ #methodCall
  +  : expression ('@' TYPEID)? '.' OBJECTID '(' (expression (',' expression)*)* ')' /* call super class method */ #methodCall
     | OBJECTID '(' (expression (',' expression)*)* ')' /* shorthand for self.OBJECTID() */ #ownMethodCall
     | IF expression THEN expression ELSE expression FI #if
     | WHILE expression LOOP expression POOL #while
  
positive.code:   | STRING #string
    | TRUE #true
    | FALSE #false
    ;
  
  
  
negative.code: 
  program: programBlocks;
  programBlocks
    : classDefine ';' programBlocks #classes
    | EOF #eof
    ;
  classDefine: CLASS TYPEID (INHERITS TYPEID)? '{' (feature ';')* '}';
  