public static Expression parse(String query) throws ParseException { FiqlParser parser = new FiqlParser(new java.io.StringReader(query)); return parser.START(); }
final public Expression START() throws ParseException { Expression e; e = EXPR(); jj_consume_token(0); {if (true) return e;} throw new Error("Missing return statement in function"); }
/** Reinitialise. */ public void ReInit(java.io.InputStream stream) { ReInit(stream, null); } /** Reinitialise. */
Expression exp; CompareExpression.OP op; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STRING: selector = jj_consume_token(STRING); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case EQ: jj_consume_token(EQ); op=CompareExpression.OP.EQ; break; case RE: jj_consume_token(RE); op=CompareExpression.OP.RE; break; case NE: jj_consume_token(NE); op=CompareExpression.OP.NE; break; case LT: jj_consume_token(LT); op=CompareExpression.OP.LT; break; case LE: jj_consume_token(LE); op=CompareExpression.OP.LE; break; case GT: jj_consume_token(GT); op=CompareExpression.OP.GT;
final public Expression EXPR() throws ParseException { ExpressionBuilder builder = new ExpressionBuilder(); Expression t; t = TERM(); builder.withTerm(t); label_1: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case AND: case OR: break label_1; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case AND: jj_consume_token(AND); t = TERM(); builder.withAnd().withTerm(t); break; case OR: jj_consume_token(OR); t = TERM(); builder.withOr().withTerm(t); break; default: jj_la1[1] = jj_gen; jj_consume_token(-1); throw new ParseException();
private Token jj_consume_token(int kind) throws ParseException { Token oldToken; if ((oldToken = token).next != null) token = token.next; else token = token.next = token_source.getNextToken(); jj_ntk = -1; if (token.kind == kind) { jj_gen++; return token; } token = oldToken; jj_kind = kind; throw generateParseException(); }
@Override public <T> Query<T> createQuery(String queryString, Class<T> type) throws QueryException { if (queryString == null || queryString.trim().length() == 0) { return null; } try { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Processing query: {}", queryString); } // FiqlParser is a parser generated by javacc Expression expression = FiqlParser.parse(queryString); if (LOGGER.isDebugEnabled()) { LOGGER.debug("Query expression: {}", expression); } // create Query and return; return new QueryImpl<T>(type, expression); } catch (Exception ex) { if (LOGGER.isDebugEnabled()) { LOGGER.error("Query processing failed = {}", queryString, ex); } throw new QueryException("Unable to parse query.", ex); } } }