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/lib/rqlParse.c src/lib/rqlParse.c index 93a5678..55581af 100644 --- src/lib/rqlParse.c +++ src/lib/rqlParse.c @@ -694,30 +694,39 @@ char *count = tokenizerMustHaveNext(tkz); if (!isdigit(count[0])) errAbort("Expecting number after limit, got %s line %d of %s", count, lf->lineIx, lf->fileName); rql->limit = atoi(count); } /* Check that are at end of statement. */ char *extra = tokenizerNext(tkz); if (extra != NULL) errAbort("Extra stuff starting with '%s' past end of statement line %d of %s", extra, lf->lineIx, lf->fileName); return rql; } +struct rqlStatement *rqlStatementParseString(char *string) +/* Return a parsed-out RQL statement based on string */ +{ +struct lineFile *lf = lineFileOnString("query", TRUE, cloneString(string)); +struct rqlStatement *rql = rqlStatementParse(lf); +lineFileClose(&lf); +return rql; +} + void rqlStatementDump(struct rqlStatement *rql, FILE *f) /* Print out statement to file. */ { fprintf(f, "%s:", rql->command); if (rql->fieldList) { fprintf(f, " "); struct slName *field = rql->fieldList; fprintf(f, "%s", field->name); for (field = field->next; field != NULL; field = field->next) fprintf(f, ",%s", field->name); } fprintf(f, "\n"); if (rql->tableList) {