anchor.diff:      |   closableBlockConstructorExpression
       |   listOrMapConstructorExpression
       |   stringConstructorExpression         // "foo $bar baz"; presented as multiple tokens
  -//deprecated    |   scopeEscapeExpression               // $x
       |   builtInType
  -    /*OBS*  //class names work fine as expressions
  -            // look for int.class and int[].class
  -    |   bt:builtInType!
  -        declaratorBrackets[bt]
  -        DOT^ nls! "class"
  -    *OBS*/
       ;
   
   // Note:  This is guaranteed to be an EXPR AST.
  
positive.code:     ;
  *OBS*/
  
  /*OBS???
  // This is the header of a method. It includes the name and parameters
  // for the method.
  // This also watches for a list of exception classes in a "throws" clause.
  ctorHead
      :   IDENT // the name of the method
  
          // parse the formal parameter declarations.
          LPAREN! parameterDeclarationList RPAREN!
  
          // get the list of exceptions that this method is declared to throw
          (throwsClause)?
      ;
  *OBS*/
  
  // This is a list of exception classes that the method is declared to throw
  throwsClause
      :   nls! "throws"^ nls! identifier ( COMMA! nls! identifier )*
  
negative.code:     :   conditionalExpression[0]
      |   annotation nls!
      ;
  *OBS*/
  
  superClassClause!
      {Token first = LT(1);}
  