package org.jtwig.parser.parboiled.expression; import org.jtwig.model.expression.VariableExpression; import org.jtwig.parser.parboiled.ParserContext; import org.jtwig.parser.parboiled.base.LexicParser; import org.jtwig.parser.parboiled.base.PositionTrackerParser; import org.parboiled.Rule; public class VariableExpressionParser extends ExpressionParser<VariableExpression> { public VariableExpressionParser(ParserContext context) { super(VariableExpressionParser.class, context); } @Override public Rule ExpressionRule() { return Sequence( parserContext().parser(PositionTrackerParser.class).PushPosition(), parserContext().parser(LexicParser.class).Identifier(), push(new VariableExpression(parserContext().parser(PositionTrackerParser.class).pop(), parserContext().parser(LexicParser.class).match())) ); } }