anchor.diff:  
   program: programBlocks;
   programBlocks
  -  : classDefine ';' programBlocks #class
  +  : classDefine ';' programBlocks #classes
     | EOF #eof
     ;
   classDefine: CLASS TYPEID (INHERITS TYPEID)? '{' (feature ';')* '}';
  
positive.code:   ;
  formal: OBJECTID ':' TYPEID; /* method argument */
  expression
    : OBJECTID ASSIGNMENT expression #assignment
    | 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
  
negative.code:   | STRING #string
    | TRUE #true
    | FALSE #false
    | OBJECTID ASSIGNMENT expression #assignment
    ;
  
  
  