anchor.diff:  pseudoVar: PSEUDO_VAR;
   parArg: COLON id;
   id: ID_CAP | ID_UNCAP;
  +primitive: 
  +    PARAGRAPH ID_UNCAP primitiveOperand* 
  +    PAR_OP (primitiveArgument (COMMA primitiveArgument)*)? PAR_CL;
  +primitiveArgument: expression;
  +primitiveOperand: (literal | ID);
   selector: id | binaryOperator | indexOperator;
   binaryOperator: BIN_OP;
   indexOperator: SQ_OP SQ_CL;
  
positive.code: ID_CAP: LETTER_UPPER (LETTER | DIGIT | '_')*;
  ID_UNCAP: LETTER_LOWER (LETTER | DIGIT | '_')*;
  
  PIPE: '|';
  HASH: '#';
  DOT: '.';
  
negative.code: messageExchange: atom message* indexAssign?;
  variableDeclaration: VAR id (ASSIGN expression)?;
  returnExpr: RETURN expression;
  atom: selfMessageExchange | access | grouping | literal | parArg | primitive;
  selfMessageExchange: multiArgMessage;
  access: id;
  grouping: PAR_OP topExpressions PAR_CL;
  message: nonBinaryMessage | binaryMessage;
  nonBinaryMessage: DOT multiArgMessage | slotAccess | indexAccess;
  multiArgMessage: ID_UNCAP multiArgMessageArgs (ID_CAP multiArgMessageArgs)*;
  multiArgMessageArgs:
      multiArgMessageArg (COMMA multiArgMessageArg)*;
  multiArgMessageArg: grouping | literal;
  slotAccess: DOT selector;
  indexAccess: SQ_OP expression SQ_CL;
  binaryMessage: BIN_OP binaryMessageOperand;
  