package org.jtwig.parser.parboiled.expression.test;
import org.jtwig.model.expression.test.SameAsTestExpression;
import org.jtwig.parser.parboiled.ParserContext;
import org.jtwig.parser.parboiled.base.SpacingParser;
import org.jtwig.parser.parboiled.expression.AnyExpressionParser;
import org.parboiled.Rule;
public class SameAsTestExpressionParser extends TestExpressionParser<SameAsTestExpression> {
public SameAsTestExpressionParser(ParserContext context) {
super(SameAsTestExpressionParser.class, context);
}
@Override
public Rule Test() {
SpacingParser spacingParser = parserContext().parser(SpacingParser.class);
AnyExpressionParser anyExpressionParser = parserContext().parser(AnyExpressionParser.class);
return Sequence(
String("same"),
spacingParser.Spacing(),
String("as"),
spacingParser.Spacing(),
String("("),
spacingParser.Spacing(),
anyExpressionParser.ExpressionRule(),
spacingParser.Spacing(),
String(")"),
push(new SameAsTestExpression(anyExpressionParser.pop()))
);
}
}