29 #include "gwen_parser_p.h"
31 #include <gwenhywfar/debug.h>
44 GWEN_PARSER_ELEMENT_TYPE tDefinitions, tData;
45 const char *nameDefinitions, *nameData;
47 if (eDefinitions==
NULL) {
58 tDefinitions=GWEN_ParserElement_GetElementType(eDefinitions);
59 tData=GWEN_ParserElement_GetElementType(eData);
60 if (tDefinitions!=tData) {
62 GWEN_ParserElementType_toString(tDefinitions),
63 GWEN_ParserElementType_toString(tData));
68 nameDefinitions=GWEN_ParserElement_GetName(eDefinitions);
69 if (nameDefinitions && !(*nameDefinitions))
71 nameData=GWEN_ParserElement_GetName(eData);
72 if (nameData && !(*nameData))
75 if (!((nameDefinitions==
NULL && nameData==
NULL) ||
76 (nameDefinitions && nameData && strcasecmp(nameDefinitions, nameData)==0))) {
78 "Unexpected element name (expected \"%s\", got \"%s\")",
79 nameDefinitions?nameDefinitions:
"<-->",
80 nameData?nameData:
"<-->");
89 const GWEN_PARSER_ELEMENT *
GWEN_Parser__GetChoice(
const GWEN_PARSER_ELEMENT *eDefinitions,
const GWEN_PARSER_ELEMENT *eData) {
90 GWEN_PARSER_ELEMENT *e;
92 e=GWEN_ParserElement_Tree_GetFirstChild(eDefinitions);
96 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)