cpiCreateElement

Scopo

Crea un elemento di sintassi predefinito che non è collegato ad una struttura ad albero della sintassi. L'elemento è di proprietà del programma di analisi specificato. L'elemento è incompleto in quanto non è impostato nessuno dei relativi attributi (quale tipo o nome).

Sintassi

CciElement* cpiCreateElement(
  int*      returnCode,
  CciParser*   parser);

Parametri

returnCode
Riceve il codice di ritorno dalla funzione (output).
I codici di ritorno possibili sono:
  • CCI_SUCCESS
  • CCI_EXCEPTION
  • CCI_FAILURE
  • CCI_INV_PARSER_OBJECT
parser
Specifica l'indirizzo dell'oggetto programma di analisi (input).

Valori di restituzione

Se ha esito positivo, viene restituito l'indirizzo del nuovo oggetto elemento. Altrimenti, viene restituito un valore zero (CCI_NULL_ADDR) e il parametro returnCode indica il motivo dell'errore.

Esempio

Questo esempio è estratto dal file del programma di analisi di esempio BipSampPluginParser.c (da riga 198 a 225):

/* Passa alla fine del valore */
          while (pc->iCurrentCharacter != quoteChar) {
            advance( (PARSER_CONTEXT_ST *)context, parser );
          }

          /* Fornisce un puntatore alla fine della tag */
          endMarker = (char*)pc->iBuffer+(int)pc->iIndex;

          /* Calcola la dimensione della tag */
          markedSize = (size_t)endMarker-(int)startMarker;

          /* Converte il valore di attributo nel formato del broker */
          data = CciNString((char *)startMarker, markedSize, pc->iCcsid);

          /* Crea un nuovo elemento nome-valore per l'attributo */
          newElement = cpiCreateElement(&rc, parser);
          cpiSetElementType(&rc, newElement, CCI_ELEMENT_TYPE_NAME_VALUE);
          cpiSetElementName(&rc, newElement, data);
          if (pc->trace) {
            const char * mbData = mbString(data, pc->iCcsid);
            fprintf(pc->tracefile, "PLUGIN: Created new NAMEVALUE element; 
                    object=0x%x type=0x%x name=",
                    newElement, CCI_ELEMENT_TYPE_NAME_VALUE);
            fprintf(pc->tracefile, "%s\n", mbData);
            fflush(pc->tracefile);
            free((void *)mbData);
          }
          /* Libera la memoria creata in CciNString() */
          free((void *)data);
Concetti correlati
Programmi di analisi definiti dall'utente
Estensioni definite dall'utente
Attività correlate
Creazione di un programma di analisi in C
Riferimenti correlati
cpiCreateAndInitializeElement
Funzioni di utilità del programma di analisi in C
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
as08400_