anchor.diff:  
   name :
        IDENTIFIER
  +  ;
  +
  +lparen :
  +     LPAREN { bracketStack.push(LPAREN); }
  +  ;
  +
  +rparen :
  +     RPAREN { bracketStack.pop(); }
  +  ;
  +
  +lsquare :
  +     LSQUARE { bracketStack.push(LSQUARE); }
  +  ;
  +
  +rsquare :
  +     RSQUARE { bracketStack.pop(); }
  +  ;
  +
  +lcurly :
  +     LCURLY { bracketStack.push(LCURLY); }
  +  ;
  +
  +rcurly :
  +     RCURLY { bracketStack.pop(); }
     ;
   
   //NB: not distinguishing between identifiers and keywords at this level - everything is an ID
  
positive.code: 
  primary_expr :
       literal
    |  LPAREN FILLER? expr RPAREN
    |  matrix
    |  cell_array
    |  access
  
negative.code: 
  element_separator :
       COMMA
    |  {isElementSeparator()}? FILLER
    ;
  
  input_params :
  