anchor.diff:          { $identifier = $typeReference.identifier;
             $typeArgumentList = $typeReference.typeArgumentList; 
             $isMember=false; }
  -      |
  +      | (~(LIDENTIFIER|UIDENTIFIER))=>
           { displayRecognitionError(getTokenNames(), 
                 new MismatchedTokenException(LIDENTIFIER, input)); }
         )
  
positive.code:       { $statement = $directiveStatement.directive; }
      | controlStatement
        { $statement = $controlStatement.controlStatement; }
      | expressionOrSpecificationstatement
        { $statement = $expressionOrSpecificationstatement.statement; }
      ;
  
  expressionOrSpecificationstatement returns [Statement statement]
      @init { SpecifierStatement ss=new SpecifierStatement(null); 
              ExpressionStatement es=new ExpressionStatement(null); }
      : expression 
  
negative.code: namedArguments returns [NamedArgumentList namedArgumentList]
      : LBRACE 
        { $namedArgumentList = new NamedArgumentList($LBRACE); }
        ( //TODO: get rid of the predicate and use the approach
          //      in expressionOrSpecificationStatement
          (namedArgumentStart) 
          => namedArgument
          { if ($namedArgument.namedArgument!=null) 
  