cpiParent

Zweck

Diese Funktion gibt die Adresse des Syntaxelementobjekts zurück, das dem angegebenen Zielelement übergeordnet ist.

Syntax

CciElement* cpiParent(
int*               returnCode,
const CciElement*  targetElement);

Parameter

returnCode
Empfängt den Rückkehrcode von der Funktion (Ausgabe). Mögliche Rückkehrcodes sind:
  • CCI_SUCCESS
  • CCI_EXCEPTION
  • CCI_INV_ELEMENT_OBJECT
targetElement
Gibt die Adresse des Zielsyntaxelementobjekts an (Eingabe).

Rückgabewerte

Bei erfolgreicher Ausführung wird die Adresse des angeforderten Syntaxelements zurückgegeben. Wenn kein übergeordnetes Element vorhanden ist, wird der Wert null zurückgegeben. Wenn ein Fehler auftritt, wird der Wert null (CCI_NULL_ADDR) zurückgegeben, und der Parameter returnCode gibt die Fehlerursache an.

Beispiel

Dieses Beispiel wurde aus der Parser-Beispieldatei BipSampPluginParser.c entnommen (Zeile 116 bis 173):

void* parseNextItem(
CciParser*  parser,
CciContext* context,
CciElement* element
){
void*              endMarker;
void*              startMarker;
PARSER_CONTEXT_ST* pc = (PARSER_CONTEXT_ST *)context;
CciElement*        returnElement = element;
CciElement*        newElement;
size_t             markedSize;
const CciChar*     data;
int                rc;
if (pc->trace) 
/* Leerzeichen überspringen */
skipWhiteSpace( (PARSER_CONTEXT_ST *)context );
/* Ist das Ende des Puffers erreicht? */
if (pc->iIndex == pc->iSize)
return(0);
}
/* Ist die aktuelle Position innerhalb eines Tags? */
if (pc->iInTag) {
if (pc->iCurrentCharacter == chCloseAngle) {
/* Das Ende eines Tags wurde erreicht */
pc->iInTag = 0;
advance( (PARSER_CONTEXT_ST *)context, parser );
}
else if (pc->iCurrentCharacter == chForwardSlash) {
/* Möglicherweise wurde 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);
}
Zugehörige Konzepte
Benutzerdefinierte Parser
Benutzerdefinierte Erweiterungen
Zugehörige Tasks
Parser in C erstellen
Zugehörige Verweise
C-Parser-Dienstprogrammfunktionen
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 18.05.2006
as08310_