29 #include "gwen_parser_p.h" 31 #include <gwenhywfar/debug.h> 45 GWEN_PARSER_ELEMENT_TYPE tDefinitions, tData;
46 const char *nameDefinitions, *nameData;
48 if (eDefinitions==
NULL) {
59 tDefinitions=GWEN_ParserElement_GetElementType(eDefinitions);
60 tData=GWEN_ParserElement_GetElementType(eData);
61 if (tDefinitions!=tData) {
63 GWEN_ParserElementType_toString(tDefinitions),
64 GWEN_ParserElementType_toString(tData));
69 nameDefinitions=GWEN_ParserElement_GetName(eDefinitions);
70 if (nameDefinitions && !(*nameDefinitions))
72 nameData=GWEN_ParserElement_GetName(eData);
73 if (nameData && !(*nameData))
76 if (!((nameDefinitions==
NULL && nameData==
NULL) ||
77 (nameDefinitions && nameData && strcasecmp(nameDefinitions, nameData)==0))) {
79 "Unexpected element name (expected \"%s\", got \"%s\")",
80 nameDefinitions?nameDefinitions:
"<-->",
81 nameData?nameData:
"<-->");
91 const GWEN_PARSER_ELEMENT *eData)
93 GWEN_PARSER_ELEMENT *e;
95 e=GWEN_ParserElement_Tree_GetFirstChild(eDefinitions);
99 e=GWEN_ParserElement_Tree_GetNext(e);
const GWEN_PARSER_ELEMENT * GWEN_Parser__GetChoice(const GWEN_PARSER_ELEMENT *eDefinitions, const GWEN_PARSER_ELEMENT *eData)
#define GWEN_ERROR_BAD_DATA
#define DBG_DEBUG(dbg_logger, format, args...)
int GWEN_Parser__CheckElement(const GWEN_PARSER_ELEMENT *eDefinitions, const GWEN_PARSER_ELEMENT *eData)