71fdb3f32d8966783bcd7a070c65c1b88200956a kent Sun Feb 15 12:19:35 2015 -0800 Adding a helper function to parse from a string as opposed to a file. diff --git src/inc/rql.h src/inc/rql.h index 1db3997..86db767 100644 --- src/inc/rql.h +++ src/inc/rql.h @@ -98,30 +98,33 @@ int limit; /* If >= 0 then limits # of records returned. */ }; void rqlValDump(union rqlVal val, enum rqlType type, FILE *f); /* Dump out value to file. */ void rqlParseDump(struct rqlParse *p, int depth, FILE *f); /* Dump out rqlParse tree and children. */ struct rqlParse *rqlParseExpression(struct tokenizer *tkz); /* Parse out a clause, usually a where clause. */ struct rqlStatement *rqlStatementParse(struct lineFile *lf); /* Parse an RQL statement out of text */ +struct rqlStatement *rqlStatementParseString(char *string); +/* Return a parsed-out RQL statement based on string */ + void rqlStatementFree(struct rqlStatement **pRql); /* Free up an rql statement. */ void rqlStatementDump(struct rqlStatement *rql, FILE *f); /* Print out statement to file. */ typedef char* (*RqlEvalLookup)(void *record, char *key); /* Callback for rqlEvalOnRecord to lookup a variable value. */ struct rqlEval rqlEvalOnRecord(struct rqlParse *p, void *record, RqlEvalLookup lookup, struct lm *lm); /* Evaluate parse tree on record, using lm for memory for string operations. */ struct rqlEval rqlEvalCoerceToBoolean(struct rqlEval r); /* Return TRUE if it's a nonempty string or a non-zero number. */