public ASTNode process(TclStatement statement, ITclParser parser, ASTNode parent) { final IfContext context = new IfContext(parser, statement); IfStatement ifStatement = new IfStatement(context.start(), context.end()); addToParent(parent, ifStatement); try { parseIf(context, ifStatement); if (!context.isEOF()) { final ASTNode extraBegin = context.get(context.index); final ASTNode extraEnd = context.get(context.size() - 1); report( parser, Messages.TclIfProcessor_unexpectedStatements, extraBegin.sourceStart(), extraEnd.sourceEnd(), ProblemSeverities.Error); } } catch (IfStatementError e) { // if (DLTKCore.DEBUG) { // e.printStackTrace(); // } report(parser, e.getMessage(), e.start, e.end, ProblemSeverities.Error); } return ifStatement; }