cpiParent

Zweck

Gibt die Adresse des Syntaxelementobjekts, das das übergeordnete Element des angegebenen Zielelements ist, zurück.

Syntax

CciElement* cpiParent(
  int*               Rückkehrcode,
  const CciElement*  Zielelement);

Parameter

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

Rückgabewerte

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.

Beispielprogramm

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);
      }
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: 23. Aug. 2006
as08310_