IDZEBRA
2.2.7
|
#include <stdio.h>
#include <assert.h>
#include <sys/types.h>
#include <ctype.h>
#include <yaz/log.h>
#include <yaz/oid_db.h>
#include <yaz/diagbib1.h>
#include <yaz/wrbuf.h>
#include <yaz/snprintf.h>
#include <d1_absyn.h>
#include <idzebra/recgrs.h>
Go to the source code of this file.
Data Structures | |
struct | source_parser |
Macros | |
#define | GRS_MAX_WORD 512 |
#define | MAX_ATTR_COUNT 50 |
Functions | |
static int | sp_lex (struct source_parser *sp) |
static int | sp_expr (struct source_parser *sp, data1_node *n, RecWord *wrd) |
static int | sp_range (struct source_parser *sp, data1_node *n, RecWord *wrd) |
static int | sp_first (struct source_parser *sp, data1_node *n, RecWord *wrd) |
static struct source_parser * | source_parser_create (void) |
static void | source_parser_destroy (struct source_parser *sp) |
static int | sp_parse (struct source_parser *sp, data1_node *n, RecWord *wrd, const char *src) |
int | d1_check_xpath_predicate (data1_node *n, struct xpath_predicate *p) |
static int | dfa_match_first (struct DFA_state **dfaar, const char *text) |
data1_termlist * | xpath_termlist_by_tagpath (char *tagpath, data1_node *n) |
static void | index_xpath_attr (char *tag_path, char *name, char *value, char *structure, struct recExtractCtrl *p, RecWord *wrd) |
static void | mk_tag_path_full (char *tag_path_full, size_t max, data1_node *n) |
static void | index_xpath (struct source_parser *sp, data1_node *n, struct recExtractCtrl *p, int level, RecWord *wrd, char *xpath_index, int xpath_is_start) |
static void | index_termlist (struct source_parser *sp, data1_node *par, data1_node *n, struct recExtractCtrl *p, int level, RecWord *wrd) |
static int | dumpkeys_r (struct source_parser *sp, data1_node *n, struct recExtractCtrl *p, int level, RecWord *wrd) |
static int | dumpkeys (data1_node *n, struct recExtractCtrl *p, RecWord *wrd) |
int | grs_extract_tree (struct recExtractCtrl *p, data1_node *n) |
static int | grs_extract_sub (void *clientData, struct recExtractCtrl *p, NMEM mem, data1_node *(*grs_read)(struct grs_read_info *)) |
int | zebra_grs_extract (void *clientData, struct recExtractCtrl *p, data1_node *(*grs_read)(struct grs_read_info *)) |
static int | process_comp (data1_handle dh, data1_node *n, Z_RecordComposition *c, char **addinfo, ODR o) |
static void | zebra_xml_metadata (struct recRetrieveCtrl *p, data1_node *top, NMEM mem) |
int | zebra_grs_retrieve (void *clientData, struct recRetrieveCtrl *p, data1_node *(*grs_read)(struct grs_read_info *)) |
#define MAX_ATTR_COUNT 50 |
int d1_check_xpath_predicate | ( | data1_node * | n, |
struct xpath_predicate * | p | ||
) |
Definition at line 286 of file recgrs.c.
References xpath_predicate::boolean, data1_xattr::name, data1_xattr::next, xpath_predicate::relation, data1_node::tag, data1_node::u, xpath_predicate::u, data1_xattr::value, xpath_predicate::which, XPATH_PREDICATE_BOOLEAN, and XPATH_PREDICATE_RELATION.
Referenced by xpath_termlist_by_tagpath().
|
static |
Definition at line 348 of file recgrs.c.
References DFA_tran::ch, DFA_state::rule_no, DFA_tran::to, DFA_state::tran_no, and DFA_state::trans.
Referenced by xpath_termlist_by_tagpath().
|
static |
Definition at line 877 of file recgrs.c.
References dumpkeys_r(), source_parser_create(), and source_parser_destroy().
Referenced by grs_extract_sub(), and grs_extract_tree().
|
static |
Definition at line 781 of file recgrs.c.
References data1_node::child, data1_node::data, DATA1N_data, DATA1N_root, DATA1N_tag, DATA1T_numeric, recExtractCtrl::dh, recExtractCtrl::flagShowRecords, get_parent_tag(), index_termlist(), index_xpath(), data1_name::name, data1_tagset::name, data1_element::name, data1_tag::names, data1_node::next, data1_tag::numeric, data1_node::root, data1_tag::string, data1_element::tag, data1_node::tag, data1_tag::tagset, data1_tagset::type, data1_node::u, data1_tag::value, data1_tag::which, data1_node::which, ZEBRA_XPATH_CDATA, ZEBRA_XPATH_ELM_BEGIN, and ZEBRA_XPATH_ELM_END.
Referenced by dumpkeys().
|
static |
Definition at line 898 of file recgrs.c.
References grs_read_info::clientData, data1_concat_text(), data1_get_encoding(), data1_iconv(), data1_pr_tree(), data1_remove_idzebra_subtree(), recExtractCtrl::dh, grs_read_info::dh, dumpkeys(), recExtractCtrl::init, grs_read_info::mem, RECCTRL_EXTRACT_EOF, RECCTRL_EXTRACT_ERROR_GENERIC, RECCTRL_EXTRACT_OK, data1_node::root, recExtractCtrl::schemaAdd, recExtractCtrl::stream, grs_read_info::stream, and data1_node::u.
Referenced by zebra_grs_extract().
int grs_extract_tree | ( | struct recExtractCtrl * | p, |
data1_node * | n | ||
) |
Definition at line 885 of file recgrs.c.
References dumpkeys(), recExtractCtrl::init, data1_node::root, recExtractCtrl::schemaAdd, and data1_node::u.
Referenced by zebra_extract_explain().
|
static |
Definition at line 732 of file recgrs.c.
References recExtractCtrl::dh, recExtractCtrl::flagShowRecords, get_parent_tag(), data1_termlist::index_name, RecWord::index_name, RecWord::index_type, data1_termlist::next, data1_node::parent, data1_termlist::source, sp_parse(), data1_termlist::structure, data1_node::tag, RecWord::term_buf, RecWord::term_len, recExtractCtrl::tokenAdd, and data1_node::u.
Referenced by dumpkeys_r().
|
static |
Definition at line 535 of file recgrs.c.
References data1_node::data, DATA1_XPATH_INDEXING_ENABLE, DATA1N_data, DATA1N_tag, recExtractCtrl::flagShowRecords, data1_termlist::index_name, RecWord::index_name, RecWord::index_type, index_xpath_attr(), MAX_ATTR_COUNT, mk_tag_path_full(), data1_xattr::name, data1_termlist::next, data1_xattr::next, data1_node::root, RecWord::seqno, data1_termlist::source, sp_parse(), data1_termlist::structure, data1_node::tag, RecWord::term_buf, RecWord::term_len, recExtractCtrl::tokenAdd, data1_node::u, data1_xattr::value, data1_node::which, xpath_termlist_by_tagpath(), and ZEBRA_XPATH_ATTR_NAME.
Referenced by dumpkeys_r().
|
static |
Definition at line 485 of file recgrs.c.
References RecWord::index_name, RecWord::index_type, RecWord::term_buf, RecWord::term_len, recExtractCtrl::tokenAdd, ZEBRA_XPATH_ATTR_CDATA, ZEBRA_XPATH_ELM_BEGIN, and ZEBRA_XPATH_ELM_END.
Referenced by index_xpath().
|
static |
Definition at line 510 of file recgrs.c.
References DATA1N_root, DATA1N_tag, data1_node::parent, data1_node::tag, data1_node::u, and data1_node::which.
Referenced by index_xpath().
|
static |
Definition at line 949 of file recgrs.c.
References data1_doespec1(), data1_getesetbyname(), grs_read_info::dh, data1_node::root, data1_esetname::spec, and data1_node::u.
Referenced by zebra_grs_retrieve().
|
static |
|
static |
|
static |
Definition at line 171 of file recgrs.c.
References data1_node::data, DATA1N_data, DATA1N_tag, source_parser::len, source_parser::lookahead, data1_xattr::name, data1_xattr::next, source_parser::nmem, sp_first(), sp_lex(), sp_range(), data1_node::tag, RecWord::term_buf, RecWord::term_len, source_parser::tok, data1_node::u, data1_xattr::value, and data1_node::which.
Referenced by sp_first(), sp_parse(), and sp_range().
|
static |
Definition at line 128 of file recgrs.c.
References source_parser::lookahead, source_parser::nmem, sp_expr(), sp_lex(), RecWord::term_buf, and RecWord::term_len.
Referenced by sp_expr().
|
static |
Definition at line 47 of file recgrs.c.
References source_parser::len, source_parser::lookahead, source_parser::src, and source_parser::tok.
Referenced by sp_expr(), sp_first(), sp_parse(), and sp_range().
|
static |
Definition at line 273 of file recgrs.c.
References source_parser::len, source_parser::lookahead, source_parser::nmem, sp_expr(), sp_lex(), source_parser::src, and source_parser::tok.
Referenced by index_termlist(), and index_xpath().
|
static |
Definition at line 71 of file recgrs.c.
References source_parser::lookahead, sp_expr(), sp_lex(), RecWord::term_buf, and RecWord::term_len.
Referenced by sp_expr().
data1_termlist* xpath_termlist_by_tagpath | ( | char * | tagpath, |
data1_node * | n | ||
) |
Definition at line 396 of file recgrs.c.
References d1_check_xpath_predicate(), DATA1N_tag, data1_xpelement::dfa, dfa_match_first(), data1_xpelement::match_next, data1_xpelement::match_state, data1_xpelement::next, data1_node::parent, xpath_location_step::predicate, data1_node::root, DFA::states, data1_xpelement::termlists, data1_node::which, data1_absyn::xp_elements, data1_xpelement::xpath, and data1_xpelement::xpath_len.
Referenced by index_xpath().
int zebra_grs_extract | ( | void * | clientData, |
struct recExtractCtrl * | p, | ||
data1_node *(*)(struct grs_read_info *) | grs_read | ||
) |
Definition at line 936 of file recgrs.c.
References grs_read_info::clientData, grs_extract_sub(), and grs_read_info::mem.
Referenced by extract_marc(), extract_marcxml(), extract_regx(), and grs_extract_sgml().
int zebra_grs_retrieve | ( | void * | clientData, |
struct recRetrieveCtrl * | p, | ||
data1_node *(*)(struct grs_read_info *) | grs_read | ||
) |
Definition at line 1072 of file recgrs.c.
References recRetrieveCtrl::addinfo, grs_read_info::clientData, recRetrieveCtrl::comp, data1_node::data, data1_concat_text(), data1_get_encoding(), data1_get_root_tag(), data1_iconv(), data1_map_record(), data1_mk_tag_data_wd(), data1_nodetobuf(), data1_nodetoexplain(), data1_nodetogr(), data1_nodetoidsgml(), data1_nodetomarc(), data1_nodetosoif(), data1_nodetosummary(), data1_pr_tree(), data1_remove_idzebra_subtree(), data1_set_data_zint(), data1_systag_lookup(), DATA1I_oid, recRetrieveCtrl::dh, grs_read_info::dh, recRetrieveCtrl::diagnostic, recRetrieveCtrl::encoding, recRetrieveCtrl::input_format, recRetrieveCtrl::localno, grs_read_info::mem, data1_maptab::next, data1_marctab::next, recRetrieveCtrl::odr, data1_maptab::oid, data1_marctab::oid, recRetrieveCtrl::output_format, process_comp(), recRetrieveCtrl::rec_buf, recRetrieveCtrl::rec_len, recRetrieveCtrl::recordSize, data1_node::root, recRetrieveCtrl::score, recRetrieveCtrl::stream, grs_read_info::stream, data1_node::u, and zebra_xml_metadata().
Referenced by grs_retrieve_sgml().
|
static |
Definition at line 1035 of file recgrs.c.
References data1_mk_tag(), data1_mk_tag_data_int(), data1_mk_tag_data_text(), data1_mk_tag_data_zint(), data1_mk_text(), recRetrieveCtrl::dh, recRetrieveCtrl::fname, recRetrieveCtrl::localno, grs_read_info::mem, recRetrieveCtrl::recordSize, and recRetrieveCtrl::score.
Referenced by zebra_grs_retrieve().