X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fyaz%2Fcql.h;h=b9b5f4d5b0445311966aebcfd0e5a1cf57c68d72;hb=073195289eb9b73d6793fa283e5a7dca7a24fba8;hp=9ae7b6be36258745c7545c51aab0813a059af81a;hpb=4d531a1a9131d69c3b6c27fbac42837e22cff61c;p=yaz-moved-to-github.git diff --git a/include/yaz/cql.h b/include/yaz/cql.h index 9ae7b6b..b9b5f4d 100644 --- a/include/yaz/cql.h +++ b/include/yaz/cql.h @@ -1,4 +1,4 @@ -/* $Id: cql.h,v 1.1 2003-01-06 08:20:27 adam Exp $ +/* $Id: cql.h,v 1.5 2003-12-16 14:36:28 adam Exp $ Copyright (C) 2002-2003 Index Data Aps @@ -10,6 +10,9 @@ See the file LICENSE. #ifndef CQL_H_INCLUDED #define CQL_H_INCLUDED #include +#include + +YAZ_BEGIN_CDECL typedef struct cql_parser *CQL_parser; @@ -20,6 +23,7 @@ typedef struct cql_parser *CQL_parser; * * Returns CQL parser or NULL if parser could not be created. */ +YAZ_EXPORT CQL_parser cql_parser_create(void); /** @@ -29,6 +33,7 @@ CQL_parser cql_parser_create(void); * Destroy CQL parser. This function does nothing if * NULL pointer is received. */ +YAZ_EXPORT void cql_parser_destroy(CQL_parser cp); /** @@ -41,6 +46,7 @@ void cql_parser_destroy(CQL_parser cp); * Returns 0 if parsing was succesful; non-zero (error code) if * unsuccesful. */ +YAZ_EXPORT int cql_parser_string(CQL_parser cp, const char *str); /** @@ -55,6 +61,7 @@ int cql_parser_string(CQL_parser cp, const char *str); * Returns 0 if parsing was succesful; non-zero (error code) if * unsuccesful. */ +YAZ_EXPORT int cql_parser_stream(CQL_parser cp, int (*getbyte)(void *client_data), void (*ungetbyte)(int b, void *client_data), @@ -70,6 +77,7 @@ int cql_parser_stream(CQL_parser cp, * Returns 0 if parsing was succesful; non-zero (error code) if * unsuccesful. */ +YAZ_EXPORT int cql_parser_stdio(CQL_parser cp, FILE *f); #define CQL_NODE_ST 1 @@ -91,7 +99,7 @@ struct cql_node { struct cql_node *right; struct cql_node *modifiers; struct cql_node *prefixes; - } bool; + } boolean; struct { char *name; char *value; @@ -108,92 +116,80 @@ struct cql_buf_write_info { char *buf; }; +YAZ_EXPORT void cql_buf_write_handler (const char *b, void *client_data); +YAZ_EXPORT void cql_node_print(struct cql_node *cn); +YAZ_EXPORT struct cql_node *cql_node_mk_sc(const char *index, const char *relation, const char *term); +YAZ_EXPORT struct cql_node *cql_node_mk_boolean(const char *op); +YAZ_EXPORT void cql_node_destroy(struct cql_node *cn); -struct cql_node *cql_node_prefix(struct cql_node *n, const char *prefix, +YAZ_EXPORT +struct cql_node *cql_node_prefix(struct cql_node *n, + const char *prefix, const char *uri); +YAZ_EXPORT struct cql_node *cql_node_mk_mod(const char *name, const char *value); +YAZ_EXPORT struct cql_node *cql_node_dup (struct cql_node *cp); +YAZ_EXPORT struct cql_node *cql_parser_result(CQL_parser cp); +YAZ_EXPORT void cql_to_xml(struct cql_node *cn, void (*pr)(const char *buf, void *client_data), void *client_data); +YAZ_EXPORT void cql_to_xml_stdio(struct cql_node *cn, FILE *f); +YAZ_EXPORT int cql_to_xml_buf(struct cql_node *cn, char *out, int max); +YAZ_EXPORT struct cql_node *cql_node_mk_proxargs(const char *relation, const char *distance, const char *unit, const char *ordering); +YAZ_EXPORT void cql_fputs(const char *buf, void *client_data); typedef struct cql_transform_t_ *cql_transform_t; +YAZ_EXPORT cql_transform_t cql_transform_open_FILE (FILE *f); +YAZ_EXPORT cql_transform_t cql_transform_open_fname(const char *fname); +YAZ_EXPORT void cql_transform_close(cql_transform_t ct); +YAZ_EXPORT void cql_transform_pr(cql_transform_t ct, struct cql_node *cn, void (*pr)(const char *buf, void *client_data), void *client_data); +YAZ_EXPORT int cql_transform_FILE(cql_transform_t ct, struct cql_node *cn, FILE *f); +YAZ_EXPORT int cql_transform_buf(cql_transform_t ct, struct cql_node *cn, char *out, int max); +YAZ_EXPORT int cql_transform_error(cql_transform_t ct, const char **addinfo); -/* -10 Illegal query -11 Unsupported query type (XCQL vs CQL) -12 Too many characters in query -13 Unbalanced or illegal use of parentheses -14 Unbalanced or illegal use of quotes -15 Illegal or unsupported index set -16 Illegal or unsupported index -17 Illegal or unsupported combination of index and index set -18 Illegal or unsupported combination of indexes -19 Illegal or unsupported relation -20 Illegal or unsupported relation modifier -21 Illegal or unsupported combination of relation modifers -22 Illegal or unsupported combination of relation and index -23 Too many characters in term -24 Illegal combination of relation and term -25 Special characters not quoted in term -26 Non special character escaped in term -27 Empty term unsupported -28 Masking character not supported -29 Masked words too short -30 Too many masking characters in term -31 Anchoring character not supported -32 Anchoring character in illegal or unsupported position -33 Combination of proximity/adjacency and masking characters not supported -34 Combination of proximity/adjacency and anchoring characters not supported -35 Terms only exclusion (stop) words -36 Term in invalid format for index or relation -37 Illegal or unsupported boolean operator -38 Too many boolean operators in query -39 Proximity not supported -40 Illegal or unsupported proximity relation -41 Illegal or unsupported proximity distance -42 Illegal or unsupported proximity unit -43 Illegal or unsupported proximity ordering -44 Illegal or unsupported combination of proximity modifiers -45 Index set name (prefix) assigned to multiple identifiers -*/ +YAZ_EXPORT +const char *cql_strerror(int code); + +YAZ_END_CDECL #endif /* CQL_H_INCLUDED */