Rule symbol(JtwigSymbol symbol) { return Sequence( basic.symbol(symbol), basic.spacing() ); }
Rule symbol(JtwigSymbol symbol) { return Sequence( basic.symbol(symbol), basic.spacing() ); }
Rule constant() { return Sequence( constants.anyConstant(), push(constants.pop()), basic.spacing() ); }
public Rule expression() { return Sequence( specificJtwigOperators(), push(simplify(pop())) ); }
Rule constant() { return Sequence( constants.anyConstant(), push(constants.pop()), basic.spacing() ); }
public Rule expression() { return Sequence( specificJtwigOperators(), push(simplify(pop())) ); }
Rule keywordAsVariable(JtwigKeyword keyword) { return Sequence( basic.keyword(keyword), push(new Variable(basic.match())), basic.spacing() ); }
Rule variable() { return Sequence( basic.identifier(), push(new Variable(match())), basic.spacing() ); }
Rule variable() { return Sequence( basic.identifier(), push(new Variable(match())), basic.spacing() ); }
Rule keywordAsVariable(JtwigKeyword keyword) { return Sequence( basic.keyword(keyword), push(new Variable(basic.match())), basic.spacing() ); }
Rule unary(Rule innerRule, Operator... operators) { return Sequence( firstOperatorOf(operators), push(new OperationUnary(((Constant<Operator>) pop()).getValue())), mandatory( Sequence( innerRule, ((OperationUnary) peek(1)).setOperand(simplify(pop())) ), new ParseException("Wrong unary operator syntax") ) ); }
Rule unary(Rule innerRule, Operator... operators) { return Sequence( firstOperatorOf(operators), push(new OperationUnary(((Constant<Operator>) pop()).getValue())), mandatory( Sequence( innerRule, ((OperationUnary) peek(1)).setOperand(simplify(pop())) ), new ParseException("Wrong unary operator syntax") ) ); }
Rule comprehensionList() { return Sequence( constants.anyConstant(), basic.symbol(TWO_DOTS), constants.anyConstant(), push(ValueList.create(constants.pop(1), constants.pop())), basic.spacing() ); }
Rule comprehensionList() { return Sequence( constants.anyConstant(), basic.symbol(TWO_DOTS), constants.anyConstant(), push(ValueList.create(constants.pop(1), constants.pop())), basic.spacing() ); }
Rule operator(Operator operator) { return Sequence( TestNot( FirstOf( basic.closeCode(), basic.symbol(CLOSE_OUTPUT) ) ), basic.terminal(operator.toString()), conditionalSpace(operator.toString()), push(new Constant<Operator>(operator)), basic.spacing() ); }
Rule functionWithoutBrackets() { return Sequence( variable(), TestNot( basic.spacing(), basic.terminal(SUB.toString()) ), expression(), push(new FunctionElement(popVariableName(1), pop())) ); }
Rule functionWithoutBrackets() { return Sequence( variable(), TestNot( basic.spacing(), basic.terminal(SUB.toString()) ), expression(), push(new FunctionElement(popVariableName(1), pop())) ); }
Rule elementar() { return FirstOf( mapEntry(), function(), map(), list(), variable(), constant(), Sequence( symbol(OPEN_PARENT), expression(), symbol(CLOSE_PARENT) ) ); }
Rule elementar() { return FirstOf( mapEntry(), function(), map(), list(), variable(), constant(), Sequence( symbol(OPEN_PARENT), expression(), symbol(CLOSE_PARENT) ) ); }