cpiParent

Finalidade

Retorna o endereço do objeto de elemento de sintaxe que é o pai do elemento de destino especificado.

Sintaxe

CciElement* cpiParent(
  int*            returnCode,
  const CciElement*  targetElement);

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).

Valores de Retorno

Se bem-sucedida, o endereço do elemento de sintaxe pedido é retornado. Se não houver um elemento pai, zero é retornado.Se um erro ocorrer, zero (CCI_NULL_ADDR) é retornado e o parâmetro returnCode indica a razão do erro.

Amostra

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

void* parseNextItem(
CciParser*  parser,
CciContext* context,
CciElement* element
){
void*              endMarker;
void*              startMarker;
PARSER_CONTEXT_ST* pc = (PARSER_CONTEXT_ST *)context;
CciElement*        returnElement = element;
CciElement*        newElement;
size_t             markedSize;
const CciChar*     data;
int                rc;
if (pc->trace)
  /* Ignorar qualquer espaço em branco */
skipWhiteSpace( (PARSER_CONTEXT_ST *)context );
/* Estamos no final do buffer? */
if (pc->iIndex == pc->iSize)
return(0);
}
/* Estamos na tag? */
if (pc->iInTag) {
if (pc->iCurrentCharacter == chCloseAngle) {
      /* Alcançamos o final de uma tag */
pc->iInTag = 0;
advance( (PARSER_CONTEXT_ST *)context, parser );
}
else if (pc->iCurrentCharacter == chForwardSlash) {
      /* Podemos ter alcançado o final de uma tag vazia */
advance( (PARSER_CONTEXT_ST *)context, parser );
if (pc->iCurrentCharacter == chCloseAngle) {
pc->iInTag = 0;
advance( (PARSER_CONTEXT_ST *)context, parser );
cpiSetElementCompleteNext(&rc, element, 1);
returnElement = cpiParent(&rc, element);
}
Conceitos relacionados
Analisadores Definidos pelo Usuário
Extensões Definidas pelo Usuário
Tarefas relacionadas
Criando um Analisador em C
Referências relacionadas
Funções de Utilitários do Analisador C
Notices | Trademarks | Downloads | Library | Support | Feedback
Copyright IBM Corporation 1999, 2006 Last updated: 5월 25, 2006
as08310_