anchor.diff:  memberBody[StaticType type] returns [Block block]
         //options { memoize=true; }
       : 
  -    {$type instanceof BaseType}? 
  +    {$type instanceof BaseType}?=>
       (
         (namedArguments)
         => namedArguments //first try to match with no directives or control structures
  
positive.code:     ;
  
  statement returns [Statement statement]
      : specificationStatement
        { $statement = $specificationStatement.specifierStatement; }
      | expressionStatement
        { $statement = $expressionStatement.expressionStatement; }
      | directiveStatement
        { $statement = $directiveStatement.directive; }
      | controlStatement
        { $statement = $controlStatement.controlStatement; }
      ;
  
  specificationStatement returns [SpecifierStatement specifierStatement]
      : memberName 
        { $specifierStatement = new SpecifierStatement(null); 
          BaseMemberExpression bme = new BaseMemberExpression(null);
          bme.setTypeArguments( new InferredTypeArguments(null) );
          bme.setIdentifier($memberName.identifier);
          $specifierStatement.setBaseMemberExpression(bme); }
        specifier
        { $specifierStatement.setSpecifierExpression($specifier.specifierExpression); }
        ';'
      ;
  
  expressionStatement returns [ExpressionStatement expressionStatement]
      : expression 
        { $expressionStatement = new ExpressionStatement(null); 
          $expressionStatement.setExpression($expression.expression); } 
        (
          SEMICOLON
        | { displayRecognitionError(getTokenNames(), 
  
negative.code:         COMMA
        )
      ;
  
  directiveStatement returns [Directive directive]
      : d=directive 
        { $directive=$d.directive; } 
  