anchor.diff:  ID  : LETTER (LETTER|DIGIT|'_')* ;
   
   NUMBER : DIGIT+ ;
  +
  +STRING
  +    : '\'' (ESC|.)*? '\'' 
  +    ;
  +
  +fragment
  +ESC : '\'\'' ;
  
positive.code:     | expr ('>'|'<'|'>='|'<=') expr
      | dotRef
      | NUMBER
      ;
  
  fragment
  
negative.code:     : 'while' expr endStat statBlock 'end'
      ;
  
  caseStat
      : 'switch' expr endStat 
        ('case' expr endStat statBlock)*
        ('otherwise' endStat statBlock)?
        'end'
      ;
  
  stat
      : dotRef '=' expr
      | ifStat
      | whileStat
      | caseStat
      | ID
      | NL
      ;
  
  arraySep
      : (COMMA | SEMI)
      ;
  
  arrayExpr
      : '[' expr (arraySep expr)* ']'
      ;
  
  cellExpr
      : '{' expr (arraySep expr)* '}'
      ;
  
  expr
  