void CProceso::PrvInstIntAFloat(CProceso* const pProceso)
{
	CStack* pStack = &pProceso->m_Stack;
	long int_value = pStack->PopInt();
	float float_value = (float) int_value;
	pStack->PushFloat(float_value);
}
void CProceso::PrvInstDivFloat(CProceso* const pProceso)
{
	CStack* pStack = &pProceso->m_Stack;
	float float_value2 = pStack->PopFloat();
	float float_value1 = pStack->PopFloat();
	float float_value = float_value1 / float_value2;
	pStack->PushFloat(float_value);
}
void CProceso::PrvRetornarDeFuncion(void)
{
	CFuncion* pCalledFunc = m_pFuncion;
	CStack* pStack = &m_Stack;

	CStack::InfoStackFunciones* pInfo = pStack->GetLastLlamadoFuncion();

	m_Instruccion = pInfo->Instruccion;
	m_pFuncion = pInfo->pFuncion;
	m_pListaInstrucciones = m_pFuncion->ObtenerListaInstrucciones();

	switch(pCalledFunc->TipoDevuelto()->ObtenerTipoDato())
	{
		case CTipoDato::TIPO_NINGUNO:
		case CTipoDato::TIPO_VOID:
			pStack->PopLlamadoFuncion();
			break;

		case CTipoDato::TIPO_INT:
		{
			long l = pStack->PopInt();
			//printf("Resultado llamdo función: %d\n", l);
			pStack->PopLlamadoFuncion();
			pStack->PushInt(l);
			break;
		}

		case CTipoDato::TIPO_FLOAT:
		{
			float f = pStack->PopFloat();
			//printf("Resultado llamdo función: %f\n", f);
			pStack->PopLlamadoFuncion();
			pStack->PushFloat(f);
			break;
		}

		case CTipoDato::TIPO_CADENA:
		{
			CObjetoCadena* pCadena = pStack->PopString(false);
			//printf("Resultado llamdo función: %s\n", (const char*) pCadena->ObtenerCadena());
			pStack->PopLlamadoFuncion();
			pStack->PushString(pCadena);
			pCadena->DecrementarUso();
			break;
		}
	}
}