CciElement* cpiParent( int* returnCode, const CciElement* targetElement);
Si la función se ejecuta correctamente, se devuelve la dirección del objeto de sintaxis solicitado. Si no hay un elemento superior, se devuelve cero. Si se produce un error, se devuelve cero (CCI_NULL_ADDR), y el parámetro returnCode indica la causa de dicho error.
Este ejemplo se ha tomado del archivo de analizador de ejemplo BipSampPluginParser.c (de la línea 116 a la 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) /* Omitir los espacios en blanco */ skipWhiteSpace( (PARSER_CONTEXT_ST *)context ); /* ¿Estamos en el final del almacenamiento intermedio? */ if (pc->iIndex == pc->iSize) return(0); } /* ¿Estamos dentro de un código? */ if (pc->iInTag) { if (pc->iCurrentCharacter == chCloseAngle) { /* Hemos llegado al final de un código */ pc->iInTag = 0; advance( (PARSER_CONTEXT_ST *)context, parser ); } else if (pc->iCurrentCharacter == chForwardSlash) { /* Es posible que hayamos llegado al final de un código vacío */ 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); }
Conceptos relacionados
Analizadores definidos por el usuario
Extensiones definidas por el usuario
Tareas relacionadas
Creación de un analizador en C
Referencia relacionada
Funciones de programa de utilidad de analizador
Avisos |
Marcas registradas |
Descargas |
Biblioteca |
Soporte |
Información de retorno (feedback)
![]() ![]() |
as08310_ |