anchor.diff:  //
   
   program:
  -    PROGRAM_KW name=TID LPAREN params+=formalParam (COMMA params+=formalParam)* RPAREN LBRACKET nls
  +    PROGRAM_KW name=TID LPAREN params+=formalParam (commaNl params+=formalParam)* RPAREN LBRACKET nls
       (statements += statement)*
       RBRACKET nls;
   
  
positive.code:     | primitiveType = PRIMITIVE_TYPE
      | basicType = BASIC_TYPE;
  
  // method definition
  
  methodDefinition:
      type=returnType name=ID LPAREN (params+=formalParam (COMMA params+=formalParam)*)? RPAREN methodBody;
  
  returnType:
      isVoid=VOID_KW | type=typeUsage;
  
negative.code:     ;
  
  invokation:
      function=basicExpression LPAREN (params+=actualParam (commaNl params+=actualParam)*)?  RPAREN ;
  
  fieldAccess:
      subject=basicExpression POINT name=ID;
  