cpiSetElementCompletePrevious

Finalidad

Establece el distintivo 'previous child complete' (siguiente hijo completo) del elemento de sintaxis de destino en el valor especificado.

Sintaxis

void cpiSetElementCompletePrevious(
  int*         returnCode,
  CciElement*  targetElement,
  CciBool      value);

Parámetros

returnCode
Recibe el código de retorno de la función (salida).
Los códigos de retorno posibles son:
  • CCI_SUCCESS
  • CCI_EXCEPTION
  • CCI_INV_ELEMENT_OBJECT
targetElement
Especifica la dirección del objeto de elemento de sintaxis de destino (entrada).
value
Valor que se debe establecer en el distintivo (entrada).

Valores de retorno

Ninguno. Si se produce un error, returnCode indica la razón del mismo.

Ejemplo

Este ejemplo se ha tomado del archivo de analizador de ejemplo BipSampPluginParser.c (líneas 289 a 318):

/* Obtener un puntero al inicio del código */
        startMarker = (char*)pc->iBuffer+(int)pc->iIndex;

        /* Saltar el código */
        goToNameEnd( (PARSER_CONTEXT_ST *)context, parser );

        /* Obtener un puntero al final del código */
        endMarker = (char*)pc->iBuffer+(int)pc->iIndex;

        /* Calcular el tamaño del código */
        markedSize = (size_t)endMarker-(int)startMarker;

        /* Convertir el código a formato de intermediario */
        data = CciNString((char *)startMarker, markedSize, pc->iCcsid);

        /* Crear un elemento de nombre nuevo para el código */
        newElement = cpiCreateElement(&rc, parser);
        cpiSetElementType(&rc, newElement, CCI_ELEMENT_TYPE_NAME);
        cpiSetElementName(&rc, newElement, data);
        cpiSetElementCompletePrevious(&rc, newElement, 0);
        cpiSetElementCompleteNext(&rc, newElement, 0);
        if (pc->trace) {
          const char * mbData = mbString(data, pc->iCcsid);
          fprintf(pc->tracefile, "PLUGIN: Nuevo código encontrado\n");
          fprintf(pc->tracefile, "PLUGIN: Creado nuevo elemento NAME; 
                  object=0x%x type=0x%x name=",
                  newElement, CCI_ELEMENT_TYPE_NAME);
          fprintf(pc->tracefile, "%s\n", mbData);
          fflush(pc->tracefile);
          free((void *)mbData);
        }
        /* Liberar la memoria asignada en CciNString() */
        free((void *)data);

        /* Añadir el elemento */
        cpiAddAsLastChild(&rc, element, newElement);
        cpiSetElementCompletePrevious(&rc, element, 1);
Conceptos relacionados
Analizadores definidos por el usuario
Extensiones definidas por el usuario
Tareas relacionadas
Creación de un analizador en C
Referencia relacionada
cpiSetElementCompleteNext
Funciones de programa de utilidad de analizador en C
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
as08490_