anchor.diff:  
   t_ASSIGN : ASSIGN { offsetTracker.advanceInLine(1); };
   
  -t_LPAREN : LPAREN { offsetTracker.advanceInLine(1); };
  -t_RPAREN : RPAREN { offsetTracker.advanceInLine(1); };
  -t_LCURLY : LCURLY { offsetTracker.advanceInLine(1); };
  -t_RCURLY : RCURLY { offsetTracker.advanceInLine(1); };
  -t_LSQUARE : LSQUARE { offsetTracker.advanceInLine(1); };
  -t_RSQUARE : RSQUARE { offsetTracker.advanceInLine(1); };
  +t_LPAREN : LPAREN { offsetTracker.advanceInLine(1); bracketStack.push(LPAREN); };
  +t_RPAREN : RPAREN { offsetTracker.advanceInLine(1); bracketStack.pop(); };
  +t_LCURLY : LCURLY { offsetTracker.advanceInLine(1); bracketStack.push(LCURLY); };
  +t_RCURLY : RCURLY { offsetTracker.advanceInLine(1); bracketStack.pop(); };
  +t_LSQUARE : LSQUARE { offsetTracker.advanceInLine(1); bracketStack.push(LSQUARE); };
  +t_RSQUARE : RSQUARE { offsetTracker.advanceInLine(1); bracketStack.pop(); };
   
   t_IDENTIFIER : IDENTIFIER { offsetTracker.advanceByTextSize($text); };
   t_NUMBER : NUMBER { offsetTracker.advanceByTextSize($text); };
  
positive.code:   |  matrix
    |  cell_array
    |  access
    |  t_AT t_FILLER? name
    ;
  
  expr_in_array :
       short_or_expr_in_array
    |  t_AT t_FILLER? input_params t_FILLER? expr_in_array
    ;
  
  short_or_expr_in_array :
       short_and_expr_in_array (t_FILLER? t_SHORTOR t_FILLER? short_and_expr_in_array)*
    ;
  
  short_and_expr_in_array :
       or_expr_in_array (t_FILLER? t_SHORTAND t_FILLER? or_expr_in_array)*
    ;
  
  or_expr_in_array :
       and_expr_in_array (t_FILLER? t_OR t_FILLER? and_expr_in_array)*
    ;
  
  and_expr_in_array :
       comp_expr_in_array (t_FILLER? t_AND t_FILLER? comp_expr_in_array)*
    ;
  
  comp_expr_in_array :
       colon_expr_in_array (t_FILLER? (t_LT | t_GT | t_LE | t_GE | t_EQ | t_NE) t_FILLER? colon_expr_in_array)*
    ;
  
  colon_expr_in_array :
       plus_expr_in_array (t_FILLER? t_COLON t_FILLER? plus_expr_in_array (t_FILLER? t_COLON t_FILLER? plus_expr_in_array)?)?
    ;
  
  //TODO-AC: antlr periodically has trouble with this (because of unary plus?)
  plus_expr_in_array :
       binary_expr_in_array (t_FILLER? (t_PLUS | t_MINUS) t_FILLER? binary_expr_in_array)*
    ;
  
  binary_expr_in_array :
       prefix_expr_in_array (t_FILLER? (t_MTIMES | t_ETIMES | t_MDIV | t_EDIV | t_MLDIV | t_ELDIV) t_FILLER? prefix_expr_in_array)*
    ;
  
  prefix_expr_in_array :
       pow_expr_in_array
    |  t_NOT t_FILLER? prefix_expr_in_array
    |  (t_PLUS | t_MINUS) t_FILLER? prefix_expr_in_array //NB: plus_expr_in_array breaks if this is written as two rules
    ;
  
  pow_expr_in_array :
       postfix_expr_in_array (t_FILLER? (t_MPOW | t_EPOW) t_FILLER? postfix_expr_in_array)*
    ;
  
  postfix_expr_in_array :
       primary_expr_in_array (t_FILLER? (t_ARRAYTRANSPOSE | t_MTRANSPOSE))*
    ;
  
  primary_expr_in_array :
       literal
    |  t_LPAREN t_FILLER? expr t_FILLER? t_RPAREN
    |  matrix
    |  cell_array
    |  access_in_array
    |  t_AT t_FILLER? name
    ;
  
  
negative.code:   ;
  
  element :
       expr
    ;
  
  //non-empty
  