cpiCreateAndInitializeElement

Scopo

Crea un elemento di sintassi, di proprietà del programma di analisi specificato, che non è collegato ad una struttura ad albero della sintassi. L'elemento è parzialmente inizializzato con i valori dei parametri type, name, firstChildComplete e lastChildComplete.

Sintassi

CciElement* cpiCreateAndInitializeElement(
  int*      returnCode,
  CciParser*  parser,
  CciElementType  type,
  	const CciChar* name,
  CciBool         firstChildComplete,
  CciBool         lastChildComplete);

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). L'indirizzo è passato al programma di analisi come un parametro della funzione di implementazione cpiCreateContext.
type
Specifica il tipo di elemento creato (input).
name
Specifica un nome descrittivo per l'elemento (input).
firstChildComplete
Specifica un valore per l'indicatore firstChildComplete dell'elemento di sintassi (input).
lastChildComplete
Specifica un valore per l'indicatore lastChildComplete dell'elemento di sintassi (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

/* 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 = cpiCreateAndInitializeElement(&rc, parser, type, name);
          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
cpiCreateElement
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
as08390_