anchor.diff:    ;
   
   pow_expr :
  -     postfix_expr ((MPOW | EPOW) FILLER? postfix_expr)*
  +     postfix_expr (FILLER? (MPOW | EPOW) FILLER? postfix_expr)*
     ;
   
   postfix_expr :
  -     primary_expr ((ARRAYTRANSPOSE | MTRANSPOSE) FILLER?)*
  +     primary_expr (FILLER? (ARRAYTRANSPOSE | MTRANSPOSE))*
     ;
   
   primary_expr :
        literal
  -  |  LPAREN FILLER? expr RPAREN FILLER?
  +  |  LPAREN FILLER? expr RPAREN
     |  matrix
     |  cell_array
     |  access
  
positive.code:   ;
  
  row_list :
       row (row_separator+ row)*
    ;
  
  row :
  
negative.code:   ;
  
  access :
       cell_access (FILLER? LPAREN FILLER? (arg_list FILLER?)? RPAREN)?
    ;
  
  cell_access :
       (var_access) (LCURLY FILLER? arg_list FILLER? RCURLY)*
    |  name FILLER? AT FILLER? name
    ;
    
  var_access :
       (name) (FILLER? DOT FILLER? name)*
    ;
  
  arg_list :	
       (arg) (FILLER? COMMA FILLER? arg)*
    ;
    
  arg :
       expr
    |  COLON
    ;
  
  literal :
       NUMBER
    |  STRING
    ;
  
  matrix :
       LSQUARE FILLER? optional_row_list RSQUARE
    ;
  
  cell_array :
       LCURLY FILLER? optional_row_list RCURLY
    ;
  
  optional_row_list :
  