anchor.diff:  answer : CARROT ws expression ws PERIOD?;
   expression : assignment | cascade | keywordSend | binarySend | primitive;
   expressions : expression expressionList*;
  -expressionList : ws PERIOD ws expression;
  -cascade : ws (keywordSend | binarySend) (ws SEMI_COLON ws message)+;
  +expressionList : PERIOD ws expression;
  +cascade : (keywordSend | binarySend) (ws SEMI_COLON ws message)+;
   message : binaryMessage | unaryMessage | keywordMessage;
   assignment : variable ws ASSIGNMENT ws expression;
   variable : IDENTIFIER;
  
positive.code: /*
    Converted to ANTLR 4 by James Ladd (Redline Smalltalk Project http://redline.st).
    Adapted from the Amber Smalltalk grammar perser.pegjs 
    
    2013/11/27 James Ladd (object@redline.st)
  */
  
  grammar Smalltalk;
  
  script : ws sequence EOF;
  sequence : temps? ws statements? ws;
  ws : (SEPARATOR | COMMENT)*;
  temps : PIPE (ws IDENTIFIER)* ws PIPE;
  statements : answer # StatementAnswer
             | expressions ws PERIOD ws answer # StatementExpressionsAnswer
             | expressions PERIOD? # StatementExpressions
  
negative.code: binaryTail : binaryMessage binaryTail?;
  binaryMessage : ws BINARY_SELECTOR ws (unarySend | operand);
  
  SEPARATOR : [ \t\r\n];
  STRING : '\'' (.)*? '\'';
  COMMENT : '"' (.)*? '"';
  BLOCK_START : '[';
  BLOCK_END : ']';
  CLOSE_PAREN : ')';
  OPEN_PAREN : '(';
  PIPE : '|';
  PERIOD : '.';
  SEMI_COLON : ';';
  BINARY_SELECTOR : ('\\' | '+' | '*' | '/' | '=' | '>' | '<' | ',' | '@' | '%' | '~' | PIPE | '&' | '-' | '?')+;
  LT : '<';
  GT : '>';
  MINUS : '-';
  RESERVED_WORD : 'nil' | 'true' | 'false' | 'self' | 'super';
  IDENTIFIER : [a-zA-Z]+[a-zA-Z0-9_]*;
  CARROT : '^';
  COLON : ':';
  ASSIGNMENT : ':=';
  HASH : '#';
  DOLLAR : '$';
  EXP : 'e';
  HEX : '16r';
  LITARR_START : '#(';
  DYNDICT_START : '#{';
  DYNARR_END : '}';
  DYNARR_START : '{';
  DIGIT : [0-9];
  HEXDIGIT : [0-9a-fA-F];
  KEYWORD : IDENTIFIER COLON;
  BLOCK_PARAM : COLON IDENTIFIER;
  CHARACTER_CONSTANT : DOLLAR (HEXDIGIT | DOLLAR);
  