cpiSetElementCompletePrevious

Finalidad

Esta función establece el distintivo 'elemento dependiente anterior 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).
targetElement
Especifica la dirección del objeto de elemento de sintaxis de destino (entrada).
value
Valor que debe establecerse en el distintivo (entrada).

Valores de retorno

Ninguno. Si se produce un error, returnCode indica la causa de dicho error.

Ejemplo

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

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

        /* Omitir 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 en formato de intermediario                */
        data = CciNString((char *)startMarker, markedSize, pc->iCcsid);

        /* Crear un nuevo elemento de nombre 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: New tag found\n");
          fprintf(pc->tracefile, "PLUGIN: Created new NAME element; 
                  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