cpiCreateElement

Finalidade

Cria um elemento de sintaxe padrão que não é conectado a uma árvore de sintaxe. O elemento é de propriedade do analisador especificado. O elemento é incompleto no sentido de que nenhum de seus atributos (tais como tipo ou nome) são definidos.

Sintaxe

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

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_FAILURE
  • CCI_INV_PARSER_OBJECT
parser
Especifica o endereço do objeto do analisador (entrada).

Valores de Retorno

Se for bem-sucedido, o endereço do novo objeto de elemento é retornado. Caso contrário, um valor de zero (CCI_NULL_ADDR) é retornado e returnCode indica a razão do erro.

Amostra

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

/* Avançar até o final do valor */
          while (pc->iCurrentCharacter != quoteChar) {
            advance( (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 o valor do atributo para o formato do intermediário */
          data = CciNString((char *)startMarker, markedSize, pc->iCcsid);

          /* Criar um novo elemento nome-valor para o atributo */
          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);
          }
          /* Liberar a memória criada em CciNString() */
          free((void *)data);
Conceitos relacionados
Analisadores Definidos pelo Usuário
Extensões Definidas pelo Usuário
Tarefas relacionadas
Criando um Analisador em C
Referências relacionadas
cpiCreateAndInitializeElement
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
as08400_