YAZ
5.34.0
|
Implements RPN to CQL conversion. More...
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <yaz/rpn2cql.h>
#include <yaz/xmalloc.h>
#include <yaz/diagbib1.h>
#include <yaz/z-core.h>
#include <yaz/wrbuf.h>
#include <yaz/logrpn.h>
Go to the source code of this file.
Functions | |
static const char * | lookup_index_from_string_attr (Z_AttributeList *attributes, Odr_int *numeric_value) |
static const char * | lookup_relation_index_from_attr (Z_AttributeList *attributes) |
static int | rpn2cql_attr (cql_transform_t ct, Z_AttributeList *attributes, WRBUF w) |
static Odr_int | lookup_truncation (Z_AttributeList *attributes) |
static int | rpn2cql_simple (cql_transform_t ct, void(*pr)(const char *buf, void *client_data), void *client_data, Z_Operand *q, WRBUF w) |
static int | rpn2cql_structure (cql_transform_t ct, void(*pr)(const char *buf, void *client_data), void *client_data, Z_RPNStructure *q, int nested, WRBUF w) |
int | cql_transform_rpn2cql_stream_r (cql_transform_t ct, WRBUF addinfo, void(*pr)(const char *buf, void *client_data), void *client_data, Z_RPNQuery *q) |
transforms RPN query to CQL output stream (re-entrant) More... | |
int | cql_transform_rpn2cql_stream (cql_transform_t ct, void(*pr)(const char *buf, void *client_data), void *client_data, Z_RPNQuery *q) |
transforms RPN query to CQL output stream (NOT re-entrant) More... | |
int | cql_transform_rpn2cql_wrbuf (cql_transform_t ct, WRBUF w, Z_RPNQuery *q) |
transforms RPN query to CQL WRBUF (NOT re-entrant) More... | |
Implements RPN to CQL conversion.
Definition in file rpn2cql.c.
int cql_transform_rpn2cql_stream | ( | cql_transform_t | ct, |
void(*)(const char *buf, void *client_data) | pr, | ||
void * | client_data, | ||
Z_RPNQuery * | q | ||
) |
transforms RPN query to CQL output stream (NOT re-entrant)
ct | CQL transform handle |
pr | print function |
client_data | opaque data to be passed to print handler |
q | RPN Query |
0 | success |
!=0 | failure (error code) |
Definition at line 368 of file rpn2cql.c.
References cql_transform_rpn2cql_stream_r(), cql_transform_set_error(), wrbuf_alloc(), wrbuf_cstr(), wrbuf_destroy(), and wrbuf_len.
Referenced by cql_transform_rpn2cql_wrbuf().
int cql_transform_rpn2cql_stream_r | ( | cql_transform_t | ct, |
WRBUF | addinfo, | ||
void(*)(const char *buf, void *client_data) | pr, | ||
void * | client_data, | ||
Z_RPNQuery * | q | ||
) |
transforms RPN query to CQL output stream (re-entrant)
ct | CQL transform handle |
addinfo | for additional error info |
pr | print function |
client_data | opaque data to be passed to print handler |
q | RPN Query |
0 | success |
!=0 | failure (error code) |
Definition at line 354 of file rpn2cql.c.
References rpn2cql_structure(), Z_RPNQuery::RPNStructure, and wrbuf_rewind().
Referenced by cql_transform_rpn2cql_stream().
int cql_transform_rpn2cql_wrbuf | ( | cql_transform_t | ct, |
WRBUF | w, | ||
Z_RPNQuery * | q | ||
) |
transforms RPN query to CQL WRBUF (NOT re-entrant)
ct | CQL transform handle |
w | WRBUF handle for result |
q | RPN Query |
0 | success |
!=0 | failure (error code) |
Definition at line 382 of file rpn2cql.c.
References cql_transform_rpn2cql_stream(), and wrbuf_vp_puts().
|
static |
Definition at line 23 of file rpn2cql.c.
References Z_AttributeList::attributes, Z_AttributeElement::attributeType, Z_AttributeElement::complex, Z_ComplexAttribute::list, Z_AttributeList::num_attributes, Z_ComplexAttribute::num_list, Z_AttributeElement::numeric, Z_StringOrNumeric::string, Z_StringOrNumeric::u, Z_AttributeElement::value, Z_AttributeElement::which, Z_StringOrNumeric::which, Z_AttributeValue_complex, Z_AttributeValue_numeric, and Z_StringOrNumeric_string.
Referenced by rpn2cql_attr().
|
static |
Definition at line 56 of file rpn2cql.c.
References Z_AttributeList::attributes, Z_AttributeElement::attributeType, Z_AttributeList::num_attributes, Z_AttributeElement::numeric, Z_AttributeElement::value, Z_AttributeElement::which, Z_AttributeValue_numeric, Z_ProximityOperator_Prox_equal, Z_ProximityOperator_Prox_greaterThan, Z_ProximityOperator_Prox_greaterThanOrEqual, Z_ProximityOperator_Prox_lessThan, Z_ProximityOperator_Prox_lessThanOrEqual, and Z_ProximityOperator_Prox_notEqual.
Referenced by rpn2cql_attr().
|
static |
Definition at line 161 of file rpn2cql.c.
References Z_AttributeList::attributes, Z_AttributeElement::attributeType, Z_AttributeList::num_attributes, Z_AttributeElement::numeric, Z_AttributeElement::value, Z_AttributeElement::which, and Z_AttributeValue_numeric.
Referenced by rpn2cql_simple().
|
static |
Definition at line 108 of file rpn2cql.c.
References cql_lookup_reverse(), lookup_index_from_string_attr(), lookup_relation_index_from_attr(), ODR_INT_PRINTF, wrbuf_printf(), wrbuf_puts(), wrbuf_rewind(), and YAZ_BIB1_UNSUPP_USE_ATTRIBUTE.
Referenced by rpn2cql_simple().
|
static |
Definition at line 177 of file rpn2cql.c.
References Z_AttributesPlusTerm::attributes, Z_Operand::attributesPlusTerm, odr_oct::buf, Z_Term::characterString, Z_Term::general, odr_oct::len, lookup_truncation(), Z_Term::numeric, ODR_INT_PRINTF, rpn2cql_attr(), Z_AttributesPlusTerm::term, Z_Operand::u, Z_Term::u, Z_Operand::which, Z_Term::which, wrbuf_cstr(), wrbuf_printf(), wrbuf_putc, wrbuf_puts(), wrbuf_rewind(), YAZ_BIB1_RESULT_SET_UNSUPP_AS_A_SEARCH_TERM, YAZ_BIB1_TERM_TYPE_UNSUPP, YAZ_BIB1_UNSUPP_TRUNCATION_ATTRIBUTE, Z_Operand_APT, Z_Term_characterString, Z_Term_general, and Z_Term_numeric.
Referenced by rpn2cql_structure().
|
static |
Definition at line 281 of file rpn2cql.c.
References Z_RPNStructure::complex, Z_ProximityOperator::distance, Z_ProximityOperator::known, Z_ProximityOperator::ordered, Z_Operator::prox, Z_ProximityOperator::relationType, Z_Complex::roperator, rpn2cql_simple(), Z_Complex::s1, Z_Complex::s2, Z_RPNStructure::simple, Z_RPNStructure::u, Z_Operator::u, Z_ProximityOperator::u, Z_RPNStructure::which, Z_Operator::which, Z_ProximityOperator::which, wrbuf_rewind(), YAZ_BIB1_UNSUPP_SEARCH, yaz_prox_unit_name(), Z_Operator_and, Z_Operator_and_not, Z_Operator_or, Z_Operator_prox, Z_ProximityOperator_known, Z_ProximityOperator_Prox_lessThan, Z_ProximityOperator_Prox_notEqual, Z_ProxUnit_word, and Z_RPNStructure_simple.
Referenced by cql_transform_rpn2cql_stream_r().