#ifndef CevalFunction__H
#define CevalFunction__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_Direction_BIDIR__desc;
extern struct record_description Absyn_InnerOuter_NOT__INNER__OUTER__desc;
extern struct record_description Absyn_IsField_NONFIELD__desc;
extern struct record_description Absyn_Msg_MSG__desc;
extern struct record_description Absyn_Path_IDENT__desc;
extern struct record_description Absyn_TypeSpec_TPATH__desc;
extern struct record_description CevalFunction_LoopControl_BREAK__desc;
extern struct record_description CevalFunction_LoopControl_NEXT__desc;
extern struct record_description CevalFunction_LoopControl_RETURN__desc;
extern struct record_description DAE_Attributes_ATTR__desc;
extern struct record_description DAE_Binding_UNBOUND__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_ConnectorType_NON__CONNECTOR__desc;
extern struct record_description DAE_Const_C__CONST__desc;
extern struct record_description DAE_Dimension_DIM__INTEGER__desc;
extern struct record_description DAE_Dimension_DIM__UNKNOWN__desc;
extern struct record_description DAE_Element_VAR__desc;
extern struct record_description DAE_Exp_CREF__desc;
extern struct record_description DAE_Exp_SIZE__desc;
extern struct record_description DAE_Mod_NOMOD__desc;
extern struct record_description DAE_Type_T__ARRAY__desc;
extern struct record_description DAE_Type_T__UNKNOWN__desc;
extern struct record_description DAE_Var_TYPES__VAR__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_Data_ND__desc;
extern struct record_description FCore_ScopeType_FUNCTION__SCOPE__desc;
extern struct record_description FCore_Status_VAR__TYPED__desc;
extern struct record_description Flags_DebugFlag_DEBUG__FLAG__desc;
extern struct record_description Gettext_TranslatableContent_gettext__desc;
extern struct record_description SCode_Attributes_ATTR__desc;
extern struct record_description SCode_Comment_COMMENT__desc;
extern struct record_description SCode_ConnectorType_POTENTIAL__desc;
extern struct record_description SCode_Element_COMPONENT__desc;
extern struct record_description SCode_Encapsulated_NOT__ENCAPSULATED__desc;
extern struct record_description SCode_Final_NOT__FINAL__desc;
extern struct record_description SCode_Mod_NOMOD__desc;
extern struct record_description SCode_Parallelism_NON__PARALLEL__desc;
extern struct record_description SCode_Prefixes_PREFIXES__desc;
extern struct record_description SCode_Redeclare_NOT__REDECLARE__desc;
extern struct record_description SCode_Replaceable_NOT__REPLACEABLE__desc;
extern struct record_description SCode_Variability_CONST__desc;
extern struct record_description SCode_Variability_VAR__desc;
extern struct record_description SCode_Visibility_PUBLIC__desc;
extern struct record_description SourceInfo_SOURCEINFO__desc;
extern struct record_description Values_Value_ARRAY__desc;
extern struct record_description Values_Value_BOOL__desc;
extern struct record_description Values_Value_ENUM__LITERAL__desc;
extern struct record_description Values_Value_INTEGER__desc;
extern struct record_description Values_Value_META__FAIL__desc;
extern struct record_description Values_Value_NORETCALL__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_CevalFunction_optimizeExpTraverser omc_CevalFunction_optimizeExpTraverser
#define boxptr_CevalFunction_checkCyclicalComponents omc_CevalFunction_checkCyclicalComponents
#define boxptr_CevalFunction_compareIterators omc_CevalFunction_compareIterators
#define boxptr_CevalFunction_getElementDependenciesTraverserExit omc_CevalFunction_getElementDependenciesTraverserExit
#define boxptr_CevalFunction_getElementDependenciesTraverserEnter omc_CevalFunction_getElementDependenciesTraverserEnter
#define boxptr_CevalFunction_getElementDependenciesFromDims omc_CevalFunction_getElementDependenciesFromDims
#define boxptr_CevalFunction_getElementDependencies omc_CevalFunction_getElementDependencies
#define boxptr_CevalFunction_sortFunctionVarsByDependency omc_CevalFunction_sortFunctionVarsByDependency
#define boxptr_CevalFunction_boxReturnValue omc_CevalFunction_boxReturnValue
#define boxptr_CevalFunction_getRecordComponentValue omc_CevalFunction_getRecordComponentValue
#define boxptr_CevalFunction_getRecordValue omc_CevalFunction_getRecordValue
#define boxptr_CevalFunction_getVariableValue omc_CevalFunction_getVariableValue
#define boxptr_CevalFunction_getFunctionReturnValue omc_CevalFunction_getFunctionReturnValue
#define boxptr_CevalFunction_getRecordVarBindingAndName omc_CevalFunction_getRecordVarBindingAndName
#define boxptr_CevalFunction_generateDefaultBinding omc_CevalFunction_generateDefaultBinding
#define boxptr_CevalFunction_getBindingOrDefault omc_CevalFunction_getBindingOrDefault
#define boxptr_CevalFunction_getBindingValueOpt omc_CevalFunction_getBindingValueOpt
#define boxptr_CevalFunction_getVariableTypeAndValue omc_CevalFunction_getVariableTypeAndValue
#define boxptr_CevalFunction_getVariableTypeAndBinding omc_CevalFunction_getVariableTypeAndBinding
#define boxptr_CevalFunction_updateRecordComponentValue omc_CevalFunction_updateRecordComponentValue
#define boxptr_CevalFunction_updateRecordComponentBinding omc_CevalFunction_updateRecordComponentBinding
#define boxptr_CevalFunction_updateRecordBinding omc_CevalFunction_updateRecordBinding
#define boxptr_CevalFunction_updateVariableBinding omc_CevalFunction_updateVariableBinding
#define boxptr_CevalFunction_assignWholeDim omc_CevalFunction_assignWholeDim
DLLExport
modelica_metatype omc_CevalFunction_assignVector(threadData_t *threadData, modelica_metatype _inNewValue, modelica_metatype _inOldValue, modelica_metatype _inSubscripts, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype *out_outResult);
#define boxptr_CevalFunction_assignVector omc_CevalFunction_assignVector
static const MMC_DEFSTRUCTLIT(boxvar_lit_CevalFunction_assignVector,2,0) {(void*) boxptr_CevalFunction_assignVector,0}};
#define boxvar_CevalFunction_assignVector MMC_REFSTRUCTLIT(boxvar_lit_CevalFunction_assignVector)
#define boxptr_CevalFunction_assignRecordComponents omc_CevalFunction_assignRecordComponents
#define boxptr_CevalFunction_assignRecord omc_CevalFunction_assignRecord
#define boxptr_CevalFunction_assignTuple omc_CevalFunction_assignTuple
#define boxptr_CevalFunction_assignVariable omc_CevalFunction_assignVariable
#define boxptr_CevalFunction_appendDimensions2 omc_CevalFunction_appendDimensions2
#define boxptr_CevalFunction_appendDimensions omc_CevalFunction_appendDimensions
#define boxptr_CevalFunction_extendEnvWithForScope omc_CevalFunction_extendEnvWithForScope
#define boxptr_CevalFunction_extendEnvWithRecordVar omc_CevalFunction_extendEnvWithRecordVar
#define boxptr_CevalFunction_getRecordValues omc_CevalFunction_getRecordValues
#define boxptr_CevalFunction_makeRecordEnvironment omc_CevalFunction_makeRecordEnvironment
#define boxptr_CevalFunction_makeBinding omc_CevalFunction_makeBinding
#define boxptr_CevalFunction_makeFunctionVariable omc_CevalFunction_makeFunctionVariable
#define boxptr_CevalFunction_extendEnvWithVar omc_CevalFunction_extendEnvWithVar
#define boxptr_CevalFunction_extendEnvWithElement omc_CevalFunction_extendEnvWithElement
#define boxptr_CevalFunction_evaluateBinding omc_CevalFunction_evaluateBinding
#define boxptr_CevalFunction_extendEnvWithFunctionVar omc_CevalFunction_extendEnvWithFunctionVar
#define boxptr_CevalFunction_extendEnvWithFunctionVars omc_CevalFunction_extendEnvWithFunctionVars
#define boxptr_CevalFunction_setupFunctionEnvironment omc_CevalFunction_setupFunctionEnvironment
#define boxptr_CevalFunction_cevalExpList omc_CevalFunction_cevalExpList
#define boxptr_CevalFunction_cevalExp omc_CevalFunction_cevalExp
#define boxptr_CevalFunction_extractLhsComponentRef omc_CevalFunction_extractLhsComponentRef
#define boxptr_CevalFunction_evaluateWhileStatement omc_CevalFunction_evaluateWhileStatement
#define boxptr_CevalFunction_evaluateForLoopArray omc_CevalFunction_evaluateForLoopArray
#define boxptr_CevalFunction_evaluateForStatement omc_CevalFunction_evaluateForStatement
#define boxptr_CevalFunction_evaluateIfStatement omc_CevalFunction_evaluateIfStatement
#define boxptr_CevalFunction_evaluateTupleAssignStatement omc_CevalFunction_evaluateTupleAssignStatement
#define boxptr_CevalFunction_evaluateStatements2 omc_CevalFunction_evaluateStatements2
#define boxptr_CevalFunction_evaluateStatements omc_CevalFunction_evaluateStatements
#define boxptr_CevalFunction_evaluateStatement omc_CevalFunction_evaluateStatement
#define boxptr_CevalFunction_evaluateElement omc_CevalFunction_evaluateElement
#define boxptr_CevalFunction_evaluateElements omc_CevalFunction_evaluateElements
#define boxptr_CevalFunction_evaluateExternalFunc omc_CevalFunction_evaluateExternalFunc
#define boxptr_CevalFunction_unliftExtOutputValue omc_CevalFunction_unliftExtOutputValue
#define boxptr_CevalFunction_assignExtOutputs omc_CevalFunction_assignExtOutputs
#define boxptr_CevalFunction_evaluateExtOutputArg omc_CevalFunction_evaluateExtOutputArg
#define boxptr_CevalFunction_evaluateExtRealMatrixArg omc_CevalFunction_evaluateExtRealMatrixArg
#define boxptr_CevalFunction_evaluateExtRealArrayArg omc_CevalFunction_evaluateExtRealArrayArg
#define boxptr_CevalFunction_evaluateExtIntArrayArg omc_CevalFunction_evaluateExtIntArrayArg
#define boxptr_CevalFunction_evaluateExtStringArg omc_CevalFunction_evaluateExtStringArg
#define boxptr_CevalFunction_evaluateExtInputArg omc_CevalFunction_evaluateExtInputArg
#define boxptr_CevalFunction_removeSelfReferentialDim omc_CevalFunction_removeSelfReferentialDim
#define boxptr_CevalFunction_removeSelfReferentialDims omc_CevalFunction_removeSelfReferentialDims
#define boxptr_CevalFunction_pairFuncParamsWithArgs omc_CevalFunction_pairFuncParamsWithArgs
#define boxptr_CevalFunction_evaluateFunctionDefinition omc_CevalFunction_evaluateFunctionDefinition
DLLExport
modelica_metatype omc_CevalFunction_evaluate(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inFunction, modelica_metatype _inFunctionArguments, modelica_metatype *out_outResult);
#define boxptr_CevalFunction_evaluate omc_CevalFunction_evaluate
static const MMC_DEFSTRUCTLIT(boxvar_lit_CevalFunction_evaluate,2,0) {(void*) boxptr_CevalFunction_evaluate,0}};
#define boxvar_CevalFunction_evaluate MMC_REFSTRUCTLIT(boxvar_lit_CevalFunction_evaluate)
#ifdef __cplusplus
}
#endif
#endif
