#ifndef Ceval__H
#define Ceval__H
#include "meta/meta_modelica.h"
#include "util/modelica.h"
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#ifdef __cplusplus
extern "C" {
#endif
extern struct record_description Absyn_CodeNode_C__ELEMENT__desc;
extern struct record_description Absyn_CodeNode_C__EXPRESSION__desc;
extern struct record_description Absyn_Component_COMPONENT__desc;
extern struct record_description Absyn_ComponentItem_COMPONENTITEM__desc;
extern struct record_description Absyn_Element_ELEMENT__desc;
extern struct record_description Absyn_ElementArg_MODIFICATION__desc;
extern struct record_description Absyn_ElementSpec_COMPONENTS__desc;
extern struct record_description Absyn_EqMod_EQMOD__desc;
extern struct record_description Absyn_EqMod_NOMOD__desc;
extern struct record_description Absyn_Exp_ARRAY__desc;
extern struct record_description Absyn_Exp_BINARY__desc;
extern struct record_description Absyn_Exp_END__desc;
extern struct record_description Absyn_Exp_IFEXP__desc;
extern struct record_description Absyn_Exp_LBINARY__desc;
extern struct record_description Absyn_Exp_LUNARY__desc;
extern struct record_description Absyn_Exp_MATRIX__desc;
extern struct record_description Absyn_Exp_RANGE__desc;
extern struct record_description Absyn_Exp_RELATION__desc;
extern struct record_description Absyn_Exp_TUPLE__desc;
extern struct record_description Absyn_Exp_UNARY__desc;
extern struct record_description Absyn_Modification_CLASSMOD__desc;
extern struct record_description Absyn_Msg_MSG__desc;
extern struct record_description Absyn_Msg_NO__MSG__desc;
extern struct record_description Absyn_Path_IDENT__desc;
extern struct record_description Absyn_Path_QUALIFIED__desc;
extern struct record_description Absyn_Subscript_NOSUB__desc;
extern struct record_description Absyn_Subscript_SUBSCRIPT__desc;
extern struct record_description AvlSetCR_Tree_EMPTY__desc;
extern struct record_description DAE_Binding_VALBOUND__desc;
extern struct record_description DAE_BindingSource_BINDING__FROM__DEFAULT__VALUE__desc;
extern struct record_description DAE_Const_C__CONST__desc;
extern struct record_description DAE_Const_C__PARAM__desc;
extern struct record_description DAE_Const_C__VAR__desc;
extern struct record_description DAE_Exp_CALL__desc;
extern struct record_description DAE_Exp_ICONST__desc;
extern struct record_description DAE_Exp_RANGE__desc;
extern struct record_description DAE_Exp_TUPLE__desc;
extern struct record_description DAE_Prefix_NOPRE__desc;
extern struct record_description DAE_Properties_PROP__desc;
extern struct record_description DAE_Subscript_INDEX__desc;
extern struct record_description DAE_Subscript_SLICE__desc;
extern struct record_description DAE_Subscript_WHOLEDIM__desc;
extern struct record_description DAE_Type_T__INTEGER__desc;
extern struct record_description DAE_Type_T__REAL__desc;
extern struct record_description ErrorTypes_Message_MESSAGE__desc;
extern struct record_description ErrorTypes_MessageType_TRANSLATION__desc;
extern struct record_description ErrorTypes_Severity_ERROR__desc;
extern struct record_description FCore_Cache_CACHE__desc;
extern struct record_description Flags_ConfigFlag_CONFIG__FLAG__desc;
extern struct record_description Flags_DebugFlag_DEBUG__FLAG__desc;
extern struct record_description Flags_FlagData_BOOL__FLAG__desc;
extern struct record_description Flags_FlagVisibility_INTERNAL__desc;
extern struct record_description Gettext_TranslatableContent_gettext__desc;
extern struct record_description Gettext_TranslatableContent_notrans__desc;
extern struct record_description SCode_Encapsulated_NOT__ENCAPSULATED__desc;
extern struct record_description SCode_Variability_VAR__desc;
extern struct record_description SourceInfo_SOURCEINFO__desc;
extern struct record_description Values_IntRealOp_ADDOP__desc;
extern struct record_description Values_IntRealOp_DIVOP__desc;
extern struct record_description Values_IntRealOp_MULOP__desc;
extern struct record_description Values_IntRealOp_POWOP__desc;
extern struct record_description Values_IntRealOp_SUBOP__desc;
extern struct record_description Values_Value_ARRAY__desc;
extern struct record_description Values_Value_BOOL__desc;
extern struct record_description Values_Value_CODE__desc;
extern struct record_description Values_Value_EMPTY__desc;
extern struct record_description Values_Value_ENUM__LITERAL__desc;
extern struct record_description Values_Value_INTEGER__desc;
extern struct record_description Values_Value_LIST__desc;
extern struct record_description Values_Value_META__ARRAY__desc;
extern struct record_description Values_Value_META__FAIL__desc;
extern struct record_description Values_Value_META__TUPLE__desc;
extern struct record_description Values_Value_NORETCALL__desc;
extern struct record_description Values_Value_OPTION__desc;
extern struct record_description Values_Value_REAL__desc;
extern struct record_description Values_Value_RECORD__desc;
extern struct record_description Values_Value_STRING__desc;
extern struct record_description Values_Value_TUPLE__desc;
#define boxptr_Ceval_makeReductionAllCombinations omc_Ceval_makeReductionAllCombinations
DLLExport
modelica_metatype omc_Ceval_cevalDimension(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inDimension, modelica_boolean _inImpl, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
DLLExport
modelica_metatype boxptr_Ceval_cevalDimension(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inDimension, modelica_metatype _inImpl, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalDimension,2,0) {(void*) boxptr_Ceval_cevalDimension,0}};
#define boxvar_Ceval_cevalDimension MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalDimension)
DLLExport
modelica_metatype omc_Ceval_cevalAstElt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inElement, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype *out_outElement);
DLLExport
modelica_metatype boxptr_Ceval_cevalAstElt(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inElement, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype *out_outElement);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalAstElt,2,0) {(void*) boxptr_Ceval_cevalAstElt,0}};
#define boxvar_Ceval_cevalAstElt MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalAstElt)
DLLExport
modelica_metatype omc_Ceval_cevalAstExpList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynExpLst);
DLLExport
modelica_metatype boxptr_Ceval_cevalAstExpList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inAbsynExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outAbsynExpLst);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalAstExpList,2,0) {(void*) boxptr_Ceval_cevalAstExpList,0}};
#define boxvar_Ceval_cevalAstExpList MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalAstExpList)
DLLExport
modelica_metatype omc_Ceval_cevalAstExp(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outExp);
DLLExport
modelica_metatype boxptr_Ceval_cevalAstExp(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _info, modelica_metatype *out_outExp);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalAstExp,2,0) {(void*) boxptr_Ceval_cevalAstExp,0}};
#define boxvar_Ceval_cevalAstExp MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalAstExp)
DLLExport
modelica_metatype omc_Ceval_cevalSimpleWithFunctionTreeReturnExp(threadData_t *threadData, modelica_metatype _exp, modelica_metatype _functions);
#define boxptr_Ceval_cevalSimpleWithFunctionTreeReturnExp omc_Ceval_cevalSimpleWithFunctionTreeReturnExp
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalSimpleWithFunctionTreeReturnExp,2,0) {(void*) boxptr_Ceval_cevalSimpleWithFunctionTreeReturnExp,0}};
#define boxvar_Ceval_cevalSimpleWithFunctionTreeReturnExp MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalSimpleWithFunctionTreeReturnExp)
DLLExport
modelica_metatype omc_Ceval_cevalSimple(threadData_t *threadData, modelica_metatype _exp);
#define boxptr_Ceval_cevalSimple omc_Ceval_cevalSimple
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalSimple,2,0) {(void*) boxptr_Ceval_cevalSimple,0}};
#define boxvar_Ceval_cevalSimple MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalSimple)
#define boxptr_Ceval_backpatchArrayReduction3 omc_Ceval_backpatchArrayReduction3
#define boxptr_Ceval_backpatchArrayReduction omc_Ceval_backpatchArrayReduction
#define boxptr_Ceval_extendFrameForIterators omc_Ceval_extendFrameForIterators
#define boxptr_Ceval_valueCons omc_Ceval_valueCons
#define boxptr_Ceval_valueArrayCons omc_Ceval_valueArrayCons
DLLExport
modelica_metatype omc_Ceval_cevalSubscript(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inSubscript, modelica_integer _inInteger, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outSubscript);
DLLExport
modelica_metatype boxptr_Ceval_cevalSubscript(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inSubscript, modelica_metatype _inInteger, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outSubscript);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalSubscript,2,0) {(void*) boxptr_Ceval_cevalSubscript,0}};
#define boxvar_Ceval_cevalSubscript MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalSubscript)
DLLExport
modelica_metatype omc_Ceval_cevalSubscripts(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpSubscriptLst, modelica_metatype _inIntegerLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outExpSubscriptLst);
DLLExport
modelica_metatype boxptr_Ceval_cevalSubscripts(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpSubscriptLst, modelica_metatype _inIntegerLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outExpSubscriptLst);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalSubscripts,2,0) {(void*) boxptr_Ceval_cevalSubscripts,0}};
#define boxvar_Ceval_cevalSubscripts MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalSubscripts)
DLLExport
modelica_metatype omc_Ceval_cevalSubscriptValue(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpSubscriptLst, modelica_metatype _inValue, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
DLLExport
modelica_metatype boxptr_Ceval_cevalSubscriptValue(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpSubscriptLst, modelica_metatype _inValue, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalSubscriptValue,2,0) {(void*) boxptr_Ceval_cevalSubscriptValue,0}};
#define boxvar_Ceval_cevalSubscriptValue MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalSubscriptValue)
DLLExport
modelica_metatype omc_Ceval_cevalCrefBinding(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inComponentRef, modelica_metatype _inBinding, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
DLLExport
modelica_metatype boxptr_Ceval_cevalCrefBinding(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inComponentRef, modelica_metatype _inBinding, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalCrefBinding,2,0) {(void*) boxptr_Ceval_cevalCrefBinding,0}};
#define boxvar_Ceval_cevalCrefBinding MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalCrefBinding)
DLLExport
modelica_metatype omc_Ceval_cevalCref__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inCref, modelica_metatype _inAttr, modelica_metatype _inType, modelica_metatype _inBinding, modelica_metatype _constForRange, modelica_metatype _inSplicedExpData, modelica_metatype _inClassEnv, modelica_metatype _inComponentEnv, modelica_string _inFQName, modelica_boolean _inImpl, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
DLLExport
modelica_metatype boxptr_Ceval_cevalCref__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inCref, modelica_metatype _inAttr, modelica_metatype _inType, modelica_metatype _inBinding, modelica_metatype _constForRange, modelica_metatype _inSplicedExpData, modelica_metatype _inClassEnv, modelica_metatype _inComponentEnv, modelica_metatype _inFQName, modelica_metatype _inImpl, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalCref__dispatch,2,0) {(void*) boxptr_Ceval_cevalCref__dispatch,0}};
#define boxvar_Ceval_cevalCref__dispatch MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalCref__dispatch)
DLLExport
modelica_metatype omc_Ceval_cevalCref(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inComponentRef, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
DLLExport
modelica_metatype boxptr_Ceval_cevalCref(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inComponentRef, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalCref,2,0) {(void*) boxptr_Ceval_cevalCref,0}};
#define boxvar_Ceval_cevalCref MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalCref)
DLLExport
modelica_metatype omc_Ceval_cevalList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValuesValueLst);
DLLExport
modelica_metatype boxptr_Ceval_cevalList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExpExpLst, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValuesValueLst);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalList,2,0) {(void*) boxptr_Ceval_cevalList,0}};
#define boxvar_Ceval_cevalList MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalList)
DLLExport
modelica_metatype omc_Ceval_cevalRangeEnum(threadData_t *threadData, modelica_integer _startIndex, modelica_integer _stopIndex, modelica_metatype _enumType);
DLLExport
modelica_metatype boxptr_Ceval_cevalRangeEnum(threadData_t *threadData, modelica_metatype _startIndex, modelica_metatype _stopIndex, modelica_metatype _enumType);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalRangeEnum,2,0) {(void*) boxptr_Ceval_cevalRangeEnum,0}};
#define boxvar_Ceval_cevalRangeEnum MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalRangeEnum)
#define boxptr_Ceval_cevalRelation omc_Ceval_cevalRelation
#define boxptr_Ceval_cevalBuiltinMinArr omc_Ceval_cevalBuiltinMinArr
#define boxptr_Ceval_cevalBuiltinMin2 omc_Ceval_cevalBuiltinMin2
#define boxptr_Ceval_cevalBuiltinMaxArr omc_Ceval_cevalBuiltinMaxArr
#define boxptr_Ceval_cevalBuiltinMax2 omc_Ceval_cevalBuiltinMax2
#define boxptr_Ceval_extractValueStringChar omc_Ceval_extractValueStringChar
#define boxptr_Ceval_makeLoadLibrariesEntry omc_Ceval_makeLoadLibrariesEntry
#define boxptr_Ceval_generateValueString omc_Ceval_generateValueString
#define boxptr_Ceval_cevalKnownExternalFuncs2 omc_Ceval_cevalKnownExternalFuncs2
DLLExport
void omc_Ceval_isKnownExternalFunc(threadData_t *threadData, modelica_string _id);
#define boxptr_Ceval_isKnownExternalFunc omc_Ceval_isKnownExternalFunc
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_isKnownExternalFunc,2,0) {(void*) boxptr_Ceval_isKnownExternalFunc,0}};
#define boxvar_Ceval_isKnownExternalFunc MMC_REFSTRUCTLIT(boxvar_lit_Ceval_isKnownExternalFunc)
DLLExport
modelica_metatype omc_Ceval_cevalKnownExternalFuncs(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _env, modelica_metatype _funcpath, modelica_metatype _vals, modelica_metatype _msg, modelica_metatype *out_res);
#define boxptr_Ceval_cevalKnownExternalFuncs omc_Ceval_cevalKnownExternalFuncs
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalKnownExternalFuncs,2,0) {(void*) boxptr_Ceval_cevalKnownExternalFuncs,0}};
#define boxvar_Ceval_cevalKnownExternalFuncs MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalKnownExternalFuncs)
#define boxptr_Ceval_cevalBuiltinHandler omc_Ceval_cevalBuiltinHandler
DLLExport
modelica_metatype omc_Ceval_cevalRangeIfConstant(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_metatype _inProp, modelica_boolean _impl, modelica_metatype _inInfo, modelica_metatype *out_outExp);
DLLExport
modelica_metatype boxptr_Ceval_cevalRangeIfConstant(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_metatype _inProp, modelica_metatype _impl, modelica_metatype _inInfo, modelica_metatype *out_outExp);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalRangeIfConstant,2,0) {(void*) boxptr_Ceval_cevalRangeIfConstant,0}};
#define boxvar_Ceval_cevalRangeIfConstant MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalRangeIfConstant)
DLLExport
modelica_metatype omc_Ceval_cevalIfConstant(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _inEnv, modelica_metatype __omcQ_24in_5Fexp, modelica_metatype __omcQ_24in_5Fprop, modelica_boolean _impl, modelica_metatype _inInfo, modelica_metatype *out_exp, modelica_metatype *out_prop);
DLLExport
modelica_metatype boxptr_Ceval_cevalIfConstant(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _inEnv, modelica_metatype __omcQ_24in_5Fexp, modelica_metatype __omcQ_24in_5Fprop, modelica_metatype _impl, modelica_metatype _inInfo, modelica_metatype *out_exp, modelica_metatype *out_prop);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_cevalIfConstant,2,0) {(void*) boxptr_Ceval_cevalIfConstant,0}};
#define boxvar_Ceval_cevalIfConstant MMC_REFSTRUCTLIT(boxvar_lit_Ceval_cevalIfConstant)
DLLExport
modelica_metatype omc_Ceval_ceval(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_boolean _inBoolean, modelica_metatype _inMsg, modelica_integer _numIter, modelica_metatype *out_outValue);
DLLExport
modelica_metatype boxptr_Ceval_ceval(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inExp, modelica_metatype _inBoolean, modelica_metatype _inMsg, modelica_metatype _numIter, modelica_metatype *out_outValue);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Ceval_ceval,2,0) {(void*) boxptr_Ceval_ceval,0}};
#define boxvar_Ceval_ceval MMC_REFSTRUCTLIT(boxvar_lit_Ceval_ceval)
#ifdef __cplusplus
}
#endif
#endif
