Expression (Lexer lexer, String expression) { String variableName = getString(lexer, expression); advance(lexer); if (lexer.getTokenType() == null) { if (Template.END.equals(variableName)) { return new EmptyNode(); } return new VariableNode(variableName, null); } if (lexer.getTokenType() != MacroTokenType.EQ) { return new VariableNode(variableName, null); } advance(lexer); Expression node = parseMacro(lexer, expression); return new VariableNode(variableName, node); }