anchor.diff:    ;
   
   paren_access :
  -     cell_access (FILLER? t_lparen FILLER? (arg_list FILLER?)? t_rparen)?
  +     cell_access (FILLER? t_LPAREN FILLER? (arg_list FILLER?)? t_RPAREN)?
     ;
   
   cell_access :
  -     name (FILLER? t_lcurly FILLER? arg_list FILLER? t_rcurly)*
  +     name (FILLER? t_LCURLY FILLER? arg_list FILLER? t_RCURLY)*
     |  {inParens()}? name FILLER? AT FILLER? name
     |  {!inParens()}? name AT name //TODO-AC: fix error message for name AT FILLER name case
     ;
  
positive.code:   ;
  
  matrix :
       t_lsquare optional_row_list t_rsquare
    ;
  
  cell_array :
       t_lcurly optional_row_list t_rcurly
    ;
  
  optional_row_list :
  
negative.code:      IDENTIFIER
    ;
  
  t_LPAREN : LPAREN { bracketStack.push(LPAREN); };
  t_RPAREN : RPAREN { bracketStack.pop(); };
  t_LCURLY : LCURLY { bracketStack.push(LCURLY); };
  t_RCURLY : RCURLY { bracketStack.pop(); };
  t_LSQUARE : LSQUARE { bracketStack.push(LSQUARE); };
  t_RSQUARE : RSQUARE { bracketStack.pop(); };
  
  //NB: not distinguishing between identifiers and keywords at this level - everything is an ID
  //NB: not distinguishing between decimal and hex numbers at this level
  