1 /* Copyright (C) 2006, Index Data ApS
2 * See the file LICENSE for details.
3 * $Id: nfaxml.h,v 1.2 2006-07-06 06:08:19 adam 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>
44 /** \brief Parse the NFA from a XML document
46 * \param doc the xml tree to parse
47 * \param error_info will be filled in case of errors
49 * \returns either the NFA, or null in case of errors
51 * It is up to the caller to destroy the nfa when done.
53 * In case of errors, returns a null pointer. You can then
54 * call xmlGetLastError() to get the details of the error.
57 yaz_nfa *yaz_nfa_parse_xml_doc(xmlDocPtr doc);
60 /** \brief Parse the NFA from a file
62 * \param filepath path to the xml file to parse
63 * \param error_info will be filled in case of errors
65 * \returns either the NFA, or null in case of errors
67 * It is up to the caller to destroy the nfa when done.
69 * In case of errors, error_info will be filled with
70 * suitable diagnostics. It may be null, if you don't
74 yaz_nfa *yaz_nfa_parse_xml_file(const char *filepath);
79 #endif /* YAZ_NFA_XML_H */
84 * indent-tabs-mode: nil
86 * vim: shiftwidth=4 tabstop=8 expandtab