anchor.diff:  literalArray : LITARR_START literalArrayRest;
   literalArrayRest : ws ((parsetimeLiteral | bareLiteralArray | bareSymbol) ws)* CLOSE_PAREN;
   bareLiteralArray : OPEN_PAREN literalArrayRest;
  -parseTimeLiteral : pseudoVariable | number | literalArray | string | symbol;
  -unaryTail : unaryMessage ws unaryTail?;
  +unaryTail : unaryMessage ws unaryTail? ws;
   unaryMessage : ws unarySelector;
   unarySelector : IDENTIFIER;
   keywords : KEYWORD+;
  
positive.code: expression : assignment | cascade | keywordSend | binarySend | primitive;
  expressions : expression expressionList*;
  expressionList : ws PERIOD ws expression;
  cascade : ws (keywordSend | binarySend) (SEMI_COLON ws message)+;
  message : binaryMessage | unaryMessage | keywordMessage;
  assignment : variable ws ASSIGNMENT ws expression;
  variable : IDENTIFIER;
  
negative.code: 
  grammar Smalltalk;
  
  script : ws sequence EOF;
  sequence : temps? ws statements? ws;
  ws : (SEPARATOR | COMMENT)*;
  temps : PIPE (ws IDENTIFIER)* ws PIPE;
  statements : answer # StatementAnswer
  