cpiSetElementCompleteNext

Finalidade

Define o sinalizador 'next child complete' no elemento de sintaxe de destino para o valor especificado.

Sintaxe

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

Parâmetros

returnCode
Recebe o código de retorno da função (saída).
Os possíveis códigos de retorno são:
  • CCI_SUCCESS
  • CCI_EXCEPTION
  • CCI_INV_ELEMENT_OBJECT
targetElement
Especifica o endereço do objeto do elemento de sintaxe de destino (entrada).
value
O valor a ser definido no sinalizador (entrada).

Valores de Retorno

Nenhuma. Se ocorrer um erro, returnCode indicará o motivo do erro.

Amostra

Este exemplo foi tirado do arquivo do analisador de amostra BipSampPluginParser.c (linhas 289 a 318):

/* Obter um ponteiro para o início da tag */
        startMarker = (char*)pc->iBuffer+(int)pc->iIndex;

        /* Ir para próxima tag */
        goToNameEnd( (PARSER_CONTEXT_ST *)context, parser );

        /* Obter um ponteiro para o final da tag */
        endMarker = (char*)pc->iBuffer+(int)pc->iIndex;

        /* Calcular o tamanho da tag */
        markedSize = (size_t)endMarker-(int)startMarker;

        /* Converter a tag para o formato do intermediário */
        data = CciNString((char *)startMarker, markedSize, pc->iCcsid);

        /* Criar um novo elemento de nome para a tag */
        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 a memória alocada em CciNString() */
        free((void *)data);

        /* Incluir o elemento */
        cpiAddAsLastChild(&rc, element, newElement);
        cpiSetElementCompletePrevious(&rc, element, 1);
Conceitos relacionados
Analisadores Definidos pelo Usuário
Extensões Definidas pelo Usuário
Tarefas relacionadas
Criando um Analisador em C
Referências relacionadas
cpiSetElementCompletePrevious
Funções de Utilitários do Analisador C
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
as08480_