CciElement* cpiParent( int* Rückkehrcode, const CciElement* Zielelement);
Falls erfolgreich, wird die Adresse des erforderlichen Syntaxelements zurückgegeben. Wenn kein übergeordnetes Element vorhanden ist, wird null zurückgegeben. Wenn ein Fehler auftritt, wird null (CCI_NULL_ADDR) zurückgegeben, und der Rückkehrcodeparameter gibt den Grund für den Fehler an.
Dieses Beispiel stammt aus der Musterparserdatei BipSampPluginParser.c (Zeile 116 bis 173):
void* parseNextItem( CciParser* Parser, CciContext* Kontext, CciElement* Element ){ void* Endmarke; void* Startmarke; PARSER_CONTEXT_ST* pc = (PARSER_CONTEXT_ST *)context; CciElement* Rückkehrelement = Element; CciElement* neues Element; size_t markedSize; const CciChar* Daten; int rc; if (pc->trace) /* Überspringen Sie jeden Leerraum */ skipWhiteSpace( (PARSER_CONTEXT_ST *)context ); /* Sind wir am Ende des Puffers? */ if (pc->iIndex == pc->iSize) return(0); } /* Sind wir innerhalb eines Tags? */ if (pc->iInTag) { if (pc->iCurrentCharacter == chCloseAngle) { /* Wir sind am Ende eines Tags angelangt */ pc->iInTag = 0; advance( (PARSER_CONTEXT_ST *)context, parser ); } else if (pc->iCurrentCharacter == chForwardSlash) { /* Wir haben möglicherweise das Ende eines leeren Tags erreicht */ advance( (PARSER_CONTEXT_ST *)context, parser ); if (pc->iCurrentCharacter == chCloseAngle) { pc->iInTag = 0; advance( (PARSER_CONTEXT_ST *)context, parser ); cpiSetElementCompleteNext(&rc, element, 1); returnElement = cpiParent(&rc, element); }