anchor.diff:          return compilationUnit;
       }
       
  -        private boolean parseAsNamedArguments() {
  -            //state.backtracking++;
  -            int start = input.mark();
  -            blockOrNamedArguments_return r=null;
  -            try {
  -            	r=blockOrNamedArguments(); // can never throw exception
  -            } catch (RecognitionException re) {
  -                System.err.println("impossible: "+re);
  -            }
  -            boolean success = !state.failed;
  -            input.rewind(start);
  -            //state.backtracking--;
  -            state.failed=false;
  -            return (success&&!r.foundStatement)
  -            		|| (!success&&!r.foundStatement&&r.foundExpressionList);
  -        }
   }
   
   @lexer::members {
  
positive.code:     : expression 
        { $expressionStatement = new ExpressionStatement(null); 
          $expressionStatement.setExpression($expression.expression); } 
        ';'
      ;
  directiveStatement returns [Directive directive]
      : d=directive 
  
negative.code: //finish parsing it
  memberBody[StaticType type] returns [Block block]
        //options { memoize=true; }
      : 
      {$type instanceof BaseType}? 
      (
        (namedArguments)
        => namedArguments //first try to match with no directives or control structures
        { $block = new Block(null);
          SimpleType t = (SimpleType) $type;
          Return r = new Return(null);
  