Rule mandatory(Rule rule, ParseException exception) { return FirstOf( rule, throwException(exception) ); }
Rule mandatory(Rule rule, ParseException exception) { return FirstOf( rule, throwException(exception) ); }
@SuppressNode Rule firstOperatorOf(Operator... operators) { Rule[] rules = new Rule[operators.length]; int i = 0; for (Operator operator : operators) rules[i++] = operator(operator); return FirstOf(rules); }
Rule function() { return FirstOf( functionWithBrackets(), functionWithoutBrackets() ); }
Rule primary() { return FirstOf( ternaryOperation(), elementar() ); }
Rule list() { return FirstOf( comprehensionList(), enumeratedList() ); }
Rule primary() { return FirstOf( ternaryOperation(), elementar() ); }
Rule function() { return FirstOf( functionWithBrackets(), functionWithoutBrackets() ); }
@SuppressNode Rule firstOperatorOf(Operator... operators) { Rule[] rules = new Rule[operators.length]; int i = 0; for (Operator operator : operators) rules[i++] = operator(operator); return FirstOf(rules); }
Rule list() { return FirstOf( comprehensionList(), enumeratedList() ); }
Rule composition() { return binary( selection(), FirstOf( functionWithBrackets(), variable() ), COMPOSITION ); }
Rule relationalExpression() { return binary( FirstOf( negation(), addition(), negative() ), Operator.LTE, Operator.GTE, Operator.LT, Operator.GT ); }
Rule relationalExpression() { return binary( FirstOf( negation(), addition(), negative() ), Operator.LTE, Operator.GTE, Operator.LT, Operator.GT ); }
Rule composition() { return binary( selection(), FirstOf( functionWithBrackets(), variable() ), COMPOSITION ); }
Rule selection() { return binary( isOperation(), FirstOf( functionWithBrackets(), mapEntry(), variable() ), SELECTION ); }
Rule selection() { return binary( isOperation(), FirstOf( functionWithBrackets(), mapEntry(), variable() ), SELECTION ); }
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 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 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) ) ); }