/* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2012 Index Data.
+ * Copyright (C) 1995-2013 Index Data.
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
/** \brief creates a CQL parser.
\returns CCL parser
-
+
Returns CQL parser or NULL if parser could not be created.
*/
-YAZ_EXPORT
+YAZ_EXPORT
CQL_parser cql_parser_create(void);
/** \brief destroys a CQL parser.
This function does nothing if NULL if received.
*/
-YAZ_EXPORT
+YAZ_EXPORT
void cql_parser_destroy(CQL_parser cp);
/** \brief parses a CQL query (string)
\retval 0 success
\retval !=0 failure
*/
-YAZ_EXPORT
+YAZ_EXPORT
int cql_parser_string(CQL_parser cp, const char *str);
/** \brief parses CQL query (query stream)
\param client_data data to be passed to stream functions
\retval 0 success
\retval !=0 failure
-
+
This function is similar to cql_parser_string but takes a
functions to read each query character from a stream.
-
+
The functions pointers getbytes, ungetbyte are similar to
that known from stdios getc, ungetc.
*/
-YAZ_EXPORT
+YAZ_EXPORT
int cql_parser_stream(CQL_parser cp,
int (*getbyte)(void *client_data),
void (*ungetbyte)(int b, void *client_data),
\param f file where query is read from
\retval 0 success
\retval !=0 failure
-
- This function is similar to cql_parser_string but reads from
+
+ This function is similar to cql_parser_string but reads from
stdio FILE handle instead.
*/
YAZ_EXPORT
int cql_parser_stdio(CQL_parser cp, FILE *f);
+/** \brief configures strict mode
+ \param cp CQL parser
+ \param mode 1=enable strict mode, 0=disable strict mode
+
+ This function is similar to cql_parser_string but reads from
+ stdio FILE handle instead.
+*/
+YAZ_EXPORT
+void cql_parser_strict(CQL_parser cp, int mode);
+
/** \brief Node type: search term */
#define CQL_NODE_ST 1
/** \brief Node type: boolean */
char *value;
/** left operand */
struct cql_node *left;
- /** right operand */
+ /** right operand */
struct cql_node *right;
/** modifiers (NULL for no list) */
struct cql_node *modifiers;
\param client_data data to be passed to pr function
*/
YAZ_EXPORT
-void cql_to_xml(struct cql_node *cn,
+void cql_to_xml(struct cql_node *cn,
void (*pr)(const char *buf, void *client_data),
void *client_data);
/** \brief converts CQL tree to XCQL and writes to file
\param client_data data to be passed to pr function
*/
YAZ_EXPORT
-int cql_to_ccl(struct cql_node *cn,
+int cql_to_ccl(struct cql_node *cn,
void (*pr)(const char *buf, void *client_data),
void *client_data);
YAZ_EXPORT
int cql_transform_define_pattern(cql_transform_t ct, const char *pattern,
const char *value);
-
+
/** \brief destroys a CQL transform handle
\param cn CQL tree
\param pr print function
\param client_data data to be passed to pr function
-
+
This will take CQL_NODE_SORT entries and conver them to
path,schema,ascending,caseSensitive,missingValue
void (*pr)(const char *buf, void *client_data),
void *client_data);
-/** \brief converts CQL sortby to sortkeys ..
+/** \brief converts CQL sortby to sortkeys ..
\param cn CQL tree
\param out result buffer
\param max size of buffer (allocated)