anchor.diff:  
   // 5.6.16.8 AddressOf Expressions
   addressOfExpression         :   AddressOf (simpleNameExpression | memberAccessExpression);
  -                                
  +
  +IntegerLiteral  
  +    :   DecimalLiteral
  +    |   HexIntegerLiteral
  +    |   OctalIntegerLiteral
  +    ;
  +
  +fragment
  +DecimalLiteral
  +    :   NegativeSymbol? DecimalDigits IntegerSuffix?
  +    ;
  +
  +fragment
  +HexIntegerLiteral
  +    :   NegativeSymbol? '&' [Hh] [1-9A-Fa-f] [0-9A-Fa-f]* IntegerSuffix?
  +    ;
  +
  +fragment
  +OctalIntegerLiteral
  +    :   NegativeSymbol? '&' [Oo] [1-7] [0-7]* IntegerSuffix?
  +    ;
  +
  +fragment
  +NegativeSymbol
  +    :   '-'
  +    ;
  +
  +fragment
  +IntegerSuffix
  +    :   '%'  // Integer 16 bit signed (default)
  +    |   '&'  // Long 32 bit signed
  +    |   '^'  // LongLong 64bit signed
  +    ;
  +
  +FloatLiteral
  +    :   '-'? [0-9]+ '.' [0-9]* Exponent FloatSign? DecimalDigits+ FloatSuffix?
  +    |   '-'? DecimalDigits Exponent FloatSign? DecimalDigits+ FloatSuffix?
  +    |   '-'? [0-9]+ '.' [0-9]* FloatSuffix?
  +    |   '-'? DecimalDigits FloatSuffix  // No decimal or exponent.  Suffix required.
  +    ;
  +
  +fragment
  +DecimalDigits
  +    :   [0-9]+
  +    ;
  +
  +fragment 
  +Exponent   
  +    :   [DdEe]
  +    ;
  +
  +fragment
  +FloatSign
  +    :   '+'
  +    |   '-'
  +    ;
  +
  +fragment
  +FloatSuffix
  +    :   '!'  // Single
  +    |   '#'  // Double (default)
  +    |   '@'  // Currency
  +    ;
  +
  +StringLiteral   :   '"' (~["\r\n] | '""')*  '"';
  +
   Abs                     :    'Abs';
   Access                  :    'Access';
   AddressOf               :    'AddressOf';
  
positive.code: ForeignName             :    '[' (~('\u000D' | '\u000A' | '\u2028' | '\u2029'))+ ']';
  
  // End of statement.
  EOS                     :   (NL | ':')+;
  
  LC                      :   WS+ '_' WS* NL              -> channel(HIDDEN);
  WS                      :   [ \t]                       -> channel(HIDDEN);
  COMMENT                 :	'\'' (LC | ~('\r' | '\n')*) -> channel(HIDDEN);
  
negative.code: // TODO enforce semantics on this.
  constantExpression          :   expression;
  
  // 5.6.16.3 Boolean Expressions
  booleanExpression           :   expression;
  
  // 5.6.16.4 Integer Expressions
  integerExpression           :   expression;
  
  