32 #ifndef CQL_H_INCLUDED
33 #define CQL_H_INCLUDED
111 #define CQL_NODE_ST 1
113 #define CQL_NODE_BOOL 2
115 #define CQL_NODE_SORT 3
166 struct cql_properties;
199 const char *prefix,
const char *uri);
239 void (*pr)(
const char *buf,
void *client_data),
264 void (*pr)(
const char *buf,
void *client_data),
287 void cql_fputs(
const char *buf,
void *client_data);
349 void (*pr)(
const char *buf,
void *client_data),
366 void (*pr)(
const char *buf,
void *client_data),
393 struct cql_node *cn,
char *out,
int max);
432 int cql_strcmp(
const char *s1,
const char *s2);
443 int cql_strncmp(
const char *s1,
const char *s2,
size_t n);
473 void (*pr)(
const char *buf,
void *client_data),
int cql_transform_FILE(cql_transform_t ct, struct cql_node *cn, FILE *f)
transforms PQF given a CQL tree from FILE (not re-entrant)
void cql_node_print(struct cql_node *cn)
Prints a CQL node and all sub nodes. Hence this function prints the parse tree which is as returned b...
int cql_sortby_to_sortkeys(struct cql_node *cn, void(*pr)(const char *buf, void *client_data), void *client_data)
converts CQL sortby to sortkeys (ala versions 1.1)
int cql_to_ccl(struct cql_node *cn, void(*pr)(const char *buf, void *client_data), void *client_data)
converts CQL tree to CCL and writes to user-defined stream
struct cql_node * cql_parser_sort_result(CQL_parser cp)
returns the sortby tree of the most recently parsed CQL query.
cql_transform_t cql_transform_create(void)
creates a CQL transform handle
void cql_to_xml(struct cql_node *cn, void(*pr)(const char *buf, void *client_data), void *client_data)
converts CQL tree to XCQL and writes to user-defined stream
int cql_strcmp(const char *s1, const char *s2)
compares two CQL strings (ala strcmp)
int cql_strncmp(const char *s1, const char *s2, size_t n)
compares two CQL strings (ala strncmp)
void cql_parser_strict(CQL_parser cp, int mode)
configures strict mode
struct cql_transform_t_ * cql_transform_t
CQL transform handle. The transform describes how to convert from CQL to PQF (Type-1 AKA RPN).
struct cql_node * cql_node_mk_sort(NMEM nmem, const char *index, struct cql_node *modifiers)
creates a sort single spec node.
int cql_transform(cql_transform_t ct, struct cql_node *cn, void(*pr)(const char *buf, void *client_data), void *client_data)
tranforms PQF given a CQL tree (NOT re-entrant)
cql_transform_t cql_transform_open_FILE(FILE *f)
creates a CQL transform handle from am opened file handle
struct cql_parser * CQL_parser
CQL parser handle (opaque pointer)
void cql_transform_set_error(cql_transform_t ct, int error, const char *addinfo)
sets error and addinfo for transform
cql_transform_t cql_transform_open_fname(const char *fname)
creates a CQL transform handle from a file
const char * cql_strerror(int code)
returns the CQL message corresponding to a given error code.
struct cql_node * cql_node_mk_sc(NMEM nmem, const char *index, const char *relation, const char *term)
creates a search clause node (st).
int cql_transform_buf(cql_transform_t ct, struct cql_node *cn, char *out, int max)
transforms PQF given a CQL tree from buffer (not re-entrant)
void cql_transform_close(cql_transform_t ct)
destroys a CQL transform handle
struct cql_node * cql_node_dup(NMEM nmem, struct cql_node *cp)
void cql_to_xml_stdio(struct cql_node *cn, FILE *f)
converts CQL tree to XCQL and writes to file
void cql_fputs(const char *buf, void *client_data)
stream handle for file (used by cql_to_xml_stdio)
int cql_to_xml_buf(struct cql_node *cn, char *out, int max)
converts CQL tree to XCQL and writes result to buffer
struct cql_node * cql_apply_prefix(NMEM nmem, struct cql_node *cn, const char *prefix, const char *uri)
applies a prefix+uri to "unresolved" index and relation URIs. "unresolved" URIs are those nodes where...
int cql_parser_stream(CQL_parser cp, int(*getbyte)(void *client_data), void(*ungetbyte)(int b, void *client_data), void *client_data)
parses CQL query (query stream)
struct cql_node * cql_parser_result(CQL_parser cp)
returns the parse tree of the most recently parsed CQL query.
void cql_node_destroy(struct cql_node *cn)
destroys a node and its children.
int cql_to_ccl_buf(struct cql_node *cn, char *out, int max)
converts CQL tree to CCL and writes result to buffer
int cql_transform_define_pattern(cql_transform_t ct, const char *pattern, const char *value)
defines CQL transform pattern
void cql_parser_destroy(CQL_parser cp)
destroys a CQL parser.
int cql_transform_error(cql_transform_t ct, const char **addinfo)
returns additional information for last transform
CQL_parser cql_parser_create(void)
creates a CQL parser.
int cql_transform_r(cql_transform_t ct, struct cql_node *cn, WRBUF addinfo, void(*pr)(const char *buf, void *client_data), void *client_data)
tranforms PQF given a CQL tree (re-entrant)
int cql_sortby_to_sortkeys_buf(struct cql_node *cn, char *out, int max)
converts CQL sortby to sortkeys ..
void cql_to_ccl_stdio(struct cql_node *cn, FILE *f)
converts CQL tree to CCL and writes to file
void cql_buf_write_handler(const char *b, void *client_data)
Handler for cql_buf_write_info.
struct cql_node * cql_node_mk_boolean(NMEM nmem, const char *op)
creates a boolean node.
const char * cql_uri(void)
returns the standard CQL context set URI.
int cql_parser_string(CQL_parser cp, const char *str)
parses a CQL query (string)
int cql_parser_stdio(CQL_parser cp, FILE *f)
parses CQL query (from FILE)
Header for Nibble Memory functions.
Structure used by cql_buf_write_handler.
struct cql_node::@10::@12 boolean
struct cql_node::@10::@13 sort
struct cql_node::@10::@11 st
struct cql_node * extra_terms
struct cql_node * modifiers
void(* ungetbyte)(int b, void *client_data)
int(* getbyte)(void *client_data)
Header for WRBUF (growing buffer)