private Node parseCode() { Token token = expect(Expression.class); Expression expressionToken = (Expression) token; ExpressionNode codeNode = new ExpressionNode(); codeNode.setValue(expressionToken.getValue()); codeNode.setBuffer(expressionToken.isBuffer()); codeNode.setEscape(expressionToken.isEscape()); codeNode.setLineNumber(expressionToken.getLineNumber()); codeNode.setFileName(filename); boolean block = false; int i = 1; while (lookahead(i) != null && lookahead(i) instanceof Newline) ++i; block = lookahead(i) instanceof Indent; if (block) { skip(i - 1); codeNode.setBlock((BlockNode) block()); } return codeNode; }