Esta función obtiene el objeto de valor del elemento de sintaxis especificado. El objeto de valor es opaco en el sentido que no se puede interrogar. Se puede utilizar para establecer o derivar el valor de un elemento a partir de otro, sin conocer su tipo, utilizando la función cpiSetElementValueValue.
Esta función la pueden utilizar los analizadores que alteran temporalmente el comportamiento llamando a las funciones de implementación cpiElementValue y cpiSetElementValue.
const CciElementValue* cpiElementValueValue(
int* returnCode,
CciElement* targetElement);
Se devuelve la dirección del objeto CciElementValue almacenado en el elemento de sintaxis de destino especificado. Si se produce un error, se devuelve cero (CCI_NULL_ADDR) y returnCode indica la razón del error.
Este ejemplo se ha tomado del archivo de analizador de ejemplo BipSampPluginParser.c:
const CciElementValue* cpiElementValue(
CciParser* parser,
CciElement* element
){
CciElement* firstChild;
const CciElementValue* value;
int rc;
if ((cpiElementType(&rc, element) == CCI_ELEMENT_TYPE_VALUE) ||
(cpiElementType(&rc, element) == CCI_ELEMENT_TYPE_NAME_VALUE)) {
value = cpiElementValueValue(&rc, element);
}
else if (cpiElementType(&rc, element) == CCI_ELEMENT_TYPE_NAME) {
firstChild = cniFirstChild(&rc, element);
value = cpiElementValueValue(&rc, firstChild);
}
else {
}
return(value);
}