anchor.diff:    ;
   
   access :
  -     cell_access (FILLER? LPAREN FILLER? (arg_list FILLER?)? RPAREN)?
  +     cell_access (({bracketStack.peek() == LPAREN}? FILLER?) lparen FILLER? (arg_list FILLER?)? rparen)?
     ;
   
   cell_access :
  -     (var_access) (LCURLY FILLER? arg_list FILLER? RCURLY)*
  -  |  name FILLER? AT FILLER? name
  +     (var_access) (({bracketStack.peek() == LPAREN}? FILLER?) lcurly FILLER? arg_list FILLER? rcurly)*
  +  |  {bracketStack.peek() == LPAREN}? name FILLER? AT FILLER? name
  +  |  name AT name
     ;
     
   var_access :
        (name) (FILLER? DOT FILLER? name)*
     ;
   
  -arg_list :	
  +arg_list :  
        (arg) (FILLER? COMMA FILLER? arg)*
     ;
     
  
positive.code:   ;
  
  matrix :
       LSQUARE FILLER? optional_row_list RSQUARE
    ;
  
  cell_array :
       LCURLY FILLER? optional_row_list RCURLY
    ;
  
  optional_row_list :
  
negative.code: //AC: keep the lexer and the parser together for now because that's the default Antlr layout
  
  options {
      output = template;
      rewrite = true;
  }
  
  @parser::header {
  