1 /* Copyright (C) 2006, Index Data ApS
2 * See the file LICENSE for details.
3 * $Id: nfaxml.h,v 1.1 2006-07-04 12:59:56 heikki Exp $
8 * \brief Routines for reading NFA specs from an XML file
10 * The xml file is something like this (using round brakcets
11 * on tags, not to confuse our documentation tools)
15 * (fromstring) FOO (/fromstring)
16 * (tostring) BAR (/tostring)
19 * (fromrange) a-z (/fromrange)
20 * (torange) A-Z (/torange)
24 * The rules consist of two parts, 'from' and 'to'.
26 * fromstring (which can be a single character)
27 * fromrange (like a-z)
28 * (later, perhaps a fromregexp)
30 * tostring (which can be a single character)
31 * torange (only with a fromrange)
32 * (later, perhaps backrefs from regexps)
38 #include <yaz/yconfig.h>
43 #include <libxml/parser.h>
49 /** \brief Parse the NFA from a XML document
51 * \param doc the xml tree to parse
52 * \param error_info will be filled in case of errors
54 * \returns either the NFA, or null in case of errors
56 * It is up to the caller to destroy the nfa when done.
58 * In case of errors, returns a null pointer. You can then
59 * call xmlGetLastError() to get the details of the error.
62 yaz_nfa *yaz_nfa_parse_xml_doc(xmlDocPtr doc);
65 /** \brief Parse the NFA from a file
67 * \param filepath path to the xml file to parse
68 * \param error_info will be filled in case of errors
70 * \returns either the NFA, or null in case of errors
72 * It is up to the caller to destroy the nfa when done.
74 * In case of errors, error_info will be filled with
75 * suitable diagnostics. It may be null, if you don't
79 yaz_nfa *yaz_nfa_parse_xml_file(char *filepath);
84 #endif /* HAVE_XML2 */
86 #endif /* YAZ_NFA_XML_H */
91 * indent-tabs-mode: nil
93 * vim: shiftwidth=4 tabstop=8 expandtab