anchor.diff:      | GE
       | NOTEQUAL
       | IS
  -    | id
  -    ;
  -classOpGetter: operatorGetter block;
  +    ;
  +classOpGetter: operatorGetter block?;
   classOpSetter: operatorSetter oneArgument block;
   oneArgument: LPAREN id RPAREN;
   subscript: LBRACK enumeration RBRACK;
   classSubscriptGet:  subscript block;
   classSubscriptSet:  subscript ASSIGN oneArgument block;
  -classGetter: id block?;
   classSetter: id assignmentSetter block;
   assignmentSetter:ASSIGN oneArgument;
   arguments: LPAREN (id (COMMA id)*)? RPAREN;
  
positive.code: parser grammar WrenParser;
  
  options { tokenVocab=WrenLexer; }
  
  
  script: fileAtom+ EOF;
  
  
negative.code: importVariables: FOR_T importVariable (COMMA importVariable);
  
  // call
  call: id (callInvoke | block)? (DOT call)*;
  callInvoke:(LPAREN enumeration? RPAREN) ;
  
  // expressions
  expression
      : expression compoundExpression
      | BANG expression
      | LPAREN expression RPAREN
      | atomExpression
      ;
  
  