final public List<String> Arguments() throws ParseException { final Object value; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LPAREN: jj_consume_token(LPAREN); value = CommaSepArguments(); jj_consume_token(RPAREN); {if (true) return (List) value;} break; case UNRESERVED_STR: case SINGLE_QUOTED_STR: case DOUBLE_QUOTED_STR: value = Argument(); {if (true) return Arrays.asList((String) value);} break; default: jj_la1[4] = jj_gen; jj_consume_token(-1); throw new ParseException(); } throw new Error("Missing return statement in function"); }
final public ComparisonNode Comparison() throws ParseException { final String sel; final String op; final List<String> args; sel = Selector(); op = Operator(); args = Arguments(); {if (true) return factory.createComparisonNode(op, sel, args);} throw new Error("Missing return statement in function"); }
final public Node Constraint() throws ParseException { final Node node; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LPAREN: node = Group(); break; case UNRESERVED_STR: node = Comparison(); break; default: jj_la1[2] = jj_gen; jj_consume_token(-1); throw new ParseException(); } {if (true) return node;} throw new Error("Missing return statement in function"); }
final public List<String> CommaSepArguments() throws ParseException { final List<String> list = new ArrayList<String>(3); String arg; arg = Argument(); list.add(arg); label_3: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case OR: ; break; default: jj_la1[5] = jj_gen; break label_3; } jj_consume_token(OR); arg = Argument(); list.add(arg); } {if (true) return list;} throw new Error("Missing return statement in function"); }
final public Node And() throws ParseException { final List<Node> nodes = new ArrayList<Node>(3); Node node; node = Constraint(); nodes.add(node); label_2: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case AND: ; break; default: jj_la1[1] = jj_gen; break label_2; } jj_consume_token(AND); node = Constraint(); nodes.add(node); } {if (true) return nodes.size() != 1 ? factory.createLogicalNode(LogicalOperator.AND, nodes) : nodes.get(0);} throw new Error("Missing return statement in function"); }
final public Node Or() throws ParseException { final List<Node> nodes = new ArrayList<Node>(3); Node node; node = And(); nodes.add(node); label_1: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case OR: ; break; default: jj_la1[0] = jj_gen; break label_1; } jj_consume_token(OR); node = And(); nodes.add(node); } {if (true) return nodes.size() != 1 ? factory.createLogicalNode(LogicalOperator.OR, nodes) : nodes.get(0);} throw new Error("Missing return statement in function"); }
/** * Parses the RSQL expression and returns AST. * * @param query The query expression to parse. * @return A root of the parsed AST. * * @throws RSQLParserException If some exception occurred during parsing, i.e. the * {@code query} is syntactically invalid. * @throws IllegalArgumentException If the {@code query} is <tt>null</tt>. */ public Node parse(String query) throws RSQLParserException { if (query == null) { throw new IllegalArgumentException("query must not be null"); } InputStream is = new ByteArrayInputStream(query.getBytes(ENCODING)); Parser parser = new Parser(is, ENCODING.name(), nodesFactory); try { return parser.Input(); } catch (Exception | TokenMgrError ex) { throw new RSQLParserException(ex); } } }
final public List<String> CommaSepArguments() throws ParseException { final List<String> list = new ArrayList<String>(3); String arg; arg = Argument(); list.add(arg); label_3: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case OR: ; break; default: jj_la1[5] = jj_gen; break label_3; } jj_consume_token(OR); arg = Argument(); list.add(arg); } {if (true) return list;} throw new Error("Missing return statement in function"); }
final public Node And() throws ParseException { final List<Node> nodes = new ArrayList<Node>(3); Node node; node = Constraint(); nodes.add(node); label_2: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case AND: ; break; default: jj_la1[1] = jj_gen; break label_2; } jj_consume_token(AND); node = Constraint(); nodes.add(node); } {if (true) return nodes.size() != 1 ? factory.createLogicalNode(LogicalOperator.AND, nodes) : nodes.get(0);} throw new Error("Missing return statement in function"); }
final public Node Or() throws ParseException { final List<Node> nodes = new ArrayList<Node>(3); Node node; node = And(); nodes.add(node); label_1: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case OR: ; break; default: jj_la1[0] = jj_gen; break label_1; } jj_consume_token(OR); node = And(); nodes.add(node); } {if (true) return nodes.size() != 1 ? factory.createLogicalNode(LogicalOperator.OR, nodes) : nodes.get(0);} throw new Error("Missing return statement in function"); }
/** * Parses the RSQL expression and returns AST. * * @param query The query expression to parse. * @return A root of the parsed AST. * * @throws RSQLParserException If some exception occurred during parsing, i.e. the * {@code query} is syntactically invalid. * @throws IllegalArgumentException If the {@code query} is <tt>null</tt>. */ public Node parse(String query) throws RSQLParserException { if (query == null) { throw new IllegalArgumentException("query must not be null"); } InputStream is = new ByteArrayInputStream(query.getBytes(ENCODING)); Parser parser = new Parser(is, ENCODING.name(), nodesFactory); try { return parser.Input(); } catch (Exception | TokenMgrError ex) { throw new RSQLParserException(ex); } } }
final public Node Constraint() throws ParseException { final Node node; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LPAREN: node = Group(); break; case UNRESERVED_STR: node = Comparison(); break; default: jj_la1[2] = jj_gen; jj_consume_token(-1); throw new ParseException(); } {if (true) return node;} throw new Error("Missing return statement in function"); }
final public List<String> Arguments() throws ParseException { final Object value; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LPAREN: jj_consume_token(LPAREN); value = CommaSepArguments(); jj_consume_token(RPAREN); {if (true) return (List) value;} break; case UNRESERVED_STR: case SINGLE_QUOTED_STR: case DOUBLE_QUOTED_STR: value = Argument(); {if (true) return Arrays.asList((String) value);} break; default: jj_la1[4] = jj_gen; jj_consume_token(-1); throw new ParseException(); } throw new Error("Missing return statement in function"); }
final public ComparisonNode Comparison() throws ParseException { final String sel; final String op; final List<String> args; sel = Selector(); op = Operator(); args = Arguments(); {if (true) return factory.createComparisonNode(op, sel, args);} throw new Error("Missing return statement in function"); }