anchor.diff:   *  just put a TODO comment in.
    */
   declarationStart!
  -    :   (     ("def" nls) 
  +    :   (     ("def" nls)
               | modifier nls
               | annotation nls
               | (   upperCaseIdent
  
positive.code:         RPAREN!
          { if (callee != null && callee.getFirstChild() != null) {
                //method call like obj.method()
                #methodCallArgs = #(create(METHOD_CALL, "(",callee.getFirstChild(),LT(1)), callee, al); 
            } else {
                //method call like method() or new Expr(), in the latter case "callee" is null
                #methodCallArgs = #(create(METHOD_CALL, "(",callee, LT(1)), callee, al);
  
negative.code: // due to possible ambiguities with other kinds of statements.  This nonterminal is used only
  // in contexts where we know we have an expression.  It allows general Java-type expressions.
  expression[int lc_stmt]
      :
          (LPAREN typeSpec[true] RPAREN expression[lc_stmt])=>
              lp:LPAREN^ {#lp.setType(TYPECAST);} typeSpec[true] RPAREN!
              expression[lc_stmt]
      |
         (LPAREN nls IDENT (COMMA nls IDENT)* RPAREN ASSIGN) =>
          m:multipleAssignment[lc_stmt] {#expression=#m;}
      |   assignmentExpression[lc_stmt]
  