anchor.diff:       t_FUNCTION (t_FILLER? output_params t_FILLER? t_ASSIGN)? t_FILLER? t_IDENTIFIER t_FILLER? t_DOT t_FILLER? t_IDENTIFIER (t_FILLER? input_params)? stmt_separator (t_FILLER? stmt_or_function)* t_FILLER? t_END
     ;
   
  -expr :
  -     expr_or_arg[false]
  -  ;
  -
  -arg :
  -     expr_or_arg[true]
  -  ;
  -
   //precedence from: http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_prog/f0-40063.html
   //all binary operators are left associative so no special handling is required
  -expr_or_arg
  -  [boolean p_isArg]
  -  scope { boolean isArg; }
  -  @init { $expr_or_arg::isArg = $p_isArg; } :
  +expr :
        short_or_expr
     |  t_AT t_FILLER? input_params t_FILLER? expr
  -  |  {$expr_or_arg::isArg}?=> t_COLON
     ;
   
   short_or_expr :
  
positive.code:   |  cell_array
    |  access
    |  t_AT t_FILLER? name
    //|  {$expr_or_arg::isArg}?=> t_END
    ;
  
  access :
  
negative.code: 
  short_and_expr :
       or_expr (t_FILLER? t_SHORTAND t_FILLER? or_expr)*
    ;
  
  or_expr :
  