errorCode printGrammarRule(SmallIndex nonTermID, GrammarRule* rule, EXIPSchema *schema) { Index j = 0; unsigned char b = 0; Index tmp_prod_indx = 0; DEBUG_MSG(INFO, EXIP_DEBUG, ("\n>RULE\n")); DEBUG_MSG(INFO, EXIP_DEBUG, ("NT-%u:", (unsigned int) nonTermID)); DEBUG_MSG(INFO, EXIP_DEBUG, ("\n")); for(b = 0; b < 3; b++) { for(j = 0; j < rule->part[b].count; j++) { String *localName = NULL; tmp_prod_indx = rule->part[b].count - 1 - j; DEBUG_MSG(INFO, EXIP_DEBUG, ("\t")); switch(rule->part[b].prod[tmp_prod_indx].eventType) { case EVENT_SD: DEBUG_MSG(INFO, EXIP_DEBUG, ("SD ")); break; case EVENT_ED: DEBUG_MSG(INFO, EXIP_DEBUG, ("ED ")); break; case EVENT_SE_QNAME: { QNameID *qname = &rule->part[b].prod[tmp_prod_indx].qnameId; localName = &(GET_LN_URI_P_QNAME(schema->uriTable, qname).lnStr); DEBUG_MSG(INFO, EXIP_DEBUG, ("SE (qname: %u:%u) ", (unsigned int) qname->uriId, (unsigned int) qname->lnId)); break; } case EVENT_SE_URI: DEBUG_MSG(INFO, EXIP_DEBUG, ("SE (uri) ")); break; case EVENT_SE_ALL: DEBUG_MSG(INFO, EXIP_DEBUG, ("SE (*) ")); break; case EVENT_EE: DEBUG_MSG(INFO, EXIP_DEBUG, ("EE ")); break; case EVENT_AT_QNAME: { QNameID *qname = &rule->part[b].prod[tmp_prod_indx].qnameId; localName = &(GET_LN_URI_P_QNAME(schema->uriTable, qname).lnStr); DEBUG_MSG(INFO, EXIP_DEBUG, ("AT (qname %u:%u) [%u]", (unsigned int) rule->part[b].prod[tmp_prod_indx].qnameId.uriId, (unsigned int) rule->part[b].prod[tmp_prod_indx].qnameId.lnId, (unsigned int) rule->part[b].prod[tmp_prod_indx].typeId)); break; } case EVENT_AT_URI: DEBUG_MSG(INFO, EXIP_DEBUG, ("AT (uri) ")); break; case EVENT_AT_ALL: DEBUG_MSG(INFO, EXIP_DEBUG, ("AT (*) [%u]", (unsigned int) rule->part[b].prod[tmp_prod_indx].typeId)); break; case EVENT_CH: DEBUG_MSG(INFO, EXIP_DEBUG, ("CH [%u]", (unsigned int) rule->part[b].prod[tmp_prod_indx].typeId)); break; case EVENT_NS: DEBUG_MSG(INFO, EXIP_DEBUG, ("NS ")); break; case EVENT_CM: DEBUG_MSG(INFO, EXIP_DEBUG, ("CM ")); break; case EVENT_PI: DEBUG_MSG(INFO, EXIP_DEBUG, ("PI ")); break; case EVENT_DT: DEBUG_MSG(INFO, EXIP_DEBUG, ("DT ")); break; case EVENT_ER: DEBUG_MSG(INFO, EXIP_DEBUG, ("ER ")); break; case EVENT_SC: DEBUG_MSG(INFO, EXIP_DEBUG, ("SC ")); break; case EVENT_VOID: DEBUG_MSG(INFO, EXIP_DEBUG, (" ")); break; default: return UNEXPECTED_ERROR; } DEBUG_MSG(INFO, EXIP_DEBUG, ("\t")); if(rule->part[b].prod[tmp_prod_indx].nonTermID != GR_VOID_NON_TERMINAL) { DEBUG_MSG(INFO, EXIP_DEBUG, ("NT-%u", (unsigned int) rule->part[b].prod[tmp_prod_indx].nonTermID)); } DEBUG_MSG(INFO, EXIP_DEBUG, ("\t")); if(b > 0) { DEBUG_MSG(INFO, EXIP_DEBUG, ("%u", (unsigned int) rule->part[0].count)); DEBUG_MSG(INFO, EXIP_DEBUG, (".")); if(b > 1) { DEBUG_MSG(INFO, EXIP_DEBUG, ("%u", (unsigned int) rule->part[1].count)); DEBUG_MSG(INFO, EXIP_DEBUG, (".")); } } DEBUG_MSG(INFO, EXIP_DEBUG, ("%u", (unsigned int) j)); if (localName != NULL) { DEBUG_MSG(INFO, EXIP_DEBUG, ("\t")); printString(localName); } DEBUG_MSG(INFO, EXIP_DEBUG, ("\n")); } } return ERR_OK; }
errorCode printGrammarRule(SmallIndex nonTermID, GrammarRule* rule, EXIPSchema *schema) { Index j = 0; Production* tmpProd; EXIType exiType = VALUE_TYPE_NONE; DEBUG_MSG(INFO, EXIP_DEBUG, ("\n>RULE\n")); DEBUG_MSG(INFO, EXIP_DEBUG, ("NT-%u:", (unsigned int) nonTermID)); DEBUG_MSG(INFO, EXIP_DEBUG, ("\n")); for(j = 0; j < rule->pCount; j++) { String *localName = NULL; tmpProd = &rule->production[rule->pCount - 1 - j]; DEBUG_MSG(INFO, EXIP_DEBUG, ("\t")); if(GET_PROD_EXI_EVENT(tmpProd->content) != EVENT_SE_QNAME && tmpProd->typeId != INDEX_MAX) exiType = GET_EXI_TYPE(schema->simpleTypeTable.sType[tmpProd->typeId].content); else exiType = VALUE_TYPE_NONE; switch(GET_PROD_EXI_EVENT(tmpProd->content)) { case EVENT_SD: DEBUG_MSG(INFO, EXIP_DEBUG, ("SD ")); break; case EVENT_ED: DEBUG_MSG(INFO, EXIP_DEBUG, ("ED ")); break; case EVENT_SE_QNAME: { QNameID *qname = &tmpProd->qnameId; localName = &(GET_LN_URI_P_QNAME(schema->uriTable, qname).lnStr); DEBUG_MSG(INFO, EXIP_DEBUG, ("SE (qname: %u:%u) ", (unsigned int) qname->uriId, (unsigned int) qname->lnId)); break; } case EVENT_SE_URI: DEBUG_MSG(INFO, EXIP_DEBUG, ("SE (uri) ")); break; case EVENT_SE_ALL: DEBUG_MSG(INFO, EXIP_DEBUG, ("SE (*) ")); break; case EVENT_EE: DEBUG_MSG(INFO, EXIP_DEBUG, ("EE ")); break; case EVENT_AT_QNAME: { QNameID *qname = &tmpProd->qnameId; localName = &(GET_LN_URI_P_QNAME(schema->uriTable, qname).lnStr); DEBUG_MSG(INFO, EXIP_DEBUG, ("AT (qname %u:%u) ", (unsigned int) tmpProd->qnameId.uriId, (unsigned int) tmpProd->qnameId.lnId)); writeValueTypeString(exiType); break; } case EVENT_AT_URI: DEBUG_MSG(INFO, EXIP_DEBUG, ("AT (uri) ")); break; case EVENT_AT_ALL: DEBUG_MSG(INFO, EXIP_DEBUG, ("AT (*) ")); writeValueTypeString(exiType); break; case EVENT_CH: DEBUG_MSG(INFO, EXIP_DEBUG, ("CH ")); writeValueTypeString(exiType); break; case EVENT_NS: DEBUG_MSG(INFO, EXIP_DEBUG, ("NS ")); break; case EVENT_CM: DEBUG_MSG(INFO, EXIP_DEBUG, ("CM ")); break; case EVENT_PI: DEBUG_MSG(INFO, EXIP_DEBUG, ("PI ")); break; case EVENT_DT: DEBUG_MSG(INFO, EXIP_DEBUG, ("DT ")); break; case EVENT_ER: DEBUG_MSG(INFO, EXIP_DEBUG, ("ER ")); break; case EVENT_SC: DEBUG_MSG(INFO, EXIP_DEBUG, ("SC ")); break; case EVENT_VOID: DEBUG_MSG(INFO, EXIP_DEBUG, (" ")); break; default: return UNEXPECTED_ERROR; } DEBUG_MSG(INFO, EXIP_DEBUG, ("\t")); if(GET_PROD_NON_TERM(tmpProd->content) != GR_VOID_NON_TERMINAL) { DEBUG_MSG(INFO, EXIP_DEBUG, ("NT-%u", (unsigned int) GET_PROD_NON_TERM(tmpProd->content))); } DEBUG_MSG(INFO, EXIP_DEBUG, ("\t")); DEBUG_MSG(INFO, EXIP_DEBUG, ("%u", (unsigned int) j)); if (localName != NULL) { DEBUG_MSG(INFO, EXIP_DEBUG, ("\t")); printString(localName); } DEBUG_MSG(INFO, EXIP_DEBUG, ("\n")); } return ERR_OK; }