anchor.diff:  
   maybe_cmd options{ backtrack=true; } :
        expr (t_FILLER? t_ASSIGN t_FILLER? expr)? t_FILLER?
  -  //|  t_IDENTIFIER cmd_args //TODO-AC: re-enable once I figure out side-effects/backtracking
  +  |  t_IDENTIFIER cmd_args //TODO-AC: re-enable once I figure out side-effects/backtracking
     ;
   
   cmd_args :
  
positive.code:   |  t_END
    ;
  
  access :
       paren_access (t_FILLER? t_DOT t_FILLER? paren_access)*
    ;
  
  paren_access :
       cell_access (t_FILLER? t_LPAREN t_FILLER? (arg_list t_FILLER?)? t_RPAREN)?
    ;
  
  cell_access :
       name (t_FILLER? t_LCURLY t_FILLER? arg_list t_FILLER? t_RCURLY)*
    |  {!(inSquare() || inCurly())}? name t_FILLER? t_AT t_FILLER? name
    |  {inSquare() || inCurly()}? name t_AT name //TODO-AC: fix error message for name AT FILLER name case
    ;
  
  arg_list :  
       arg (t_FILLER? t_COMMA t_FILLER? arg)*
    ;
  
negative.code:              isPrefixOperator(prevToken) || isPostfixOperator(nextToken) ||
               isLParen(prevToken) || isRParen(nextToken));
  }
  }
  
  @lexer::header {
  