#ifndef StateMachineFlatten__H
#define StateMachineFlatten__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_InnerOuter_NOT__INNER__OUTER__desc;
extern struct record_description Absyn_Path_IDENT__desc;
extern struct record_description DAE_AvlTreePathFunction_Tree_EMPTY__desc;
extern struct record_description DAE_CallAttributes_CALL__ATTR__desc;
extern struct record_description DAE_ClockKind_INFERRED__CLOCK__desc;
extern struct record_description DAE_ComponentPrefix_NOCOMPPRE__desc;
extern struct record_description DAE_ComponentRef_CREF__IDENT__desc;
extern struct record_description DAE_ConnectorType_NON__CONNECTOR__desc;
extern struct record_description DAE_DAElist_DAE__desc;
extern struct record_description DAE_Dimension_DIM__INTEGER__desc;
extern struct record_description DAE_Element_COMP__desc;
extern struct record_description DAE_Element_EQUATION__desc;
extern struct record_description DAE_Element_REINIT__desc;
extern struct record_description DAE_Element_SM__COMP__desc;
extern struct record_description DAE_Element_VAR__desc;
extern struct record_description DAE_Element_WHEN__EQUATION__desc;
extern struct record_description DAE_ElementSource_SOURCE__desc;
extern struct record_description DAE_Exp_ARRAY__desc;
extern struct record_description DAE_Exp_BCONST__desc;
extern struct record_description DAE_Exp_BINARY__desc;
extern struct record_description DAE_Exp_CALL__desc;
extern struct record_description DAE_Exp_CLKCONST__desc;
extern struct record_description DAE_Exp_CREF__desc;
extern struct record_description DAE_Exp_ICONST__desc;
extern struct record_description DAE_Exp_IFEXP__desc;
extern struct record_description DAE_Exp_LBINARY__desc;
extern struct record_description DAE_Exp_RCONST__desc;
extern struct record_description DAE_Exp_RELATION__desc;
extern struct record_description DAE_Exp_SCONST__desc;
extern struct record_description DAE_InlineType_NO__INLINE__desc;
extern struct record_description DAE_Operator_ADD__desc;
extern struct record_description DAE_Operator_AND__desc;
extern struct record_description DAE_Operator_EQUAL__desc;
extern struct record_description DAE_Operator_GREATER__desc;
extern struct record_description DAE_Operator_OR__desc;
extern struct record_description DAE_Operator_SUB__desc;
extern struct record_description DAE_Subscript_INDEX__desc;
extern struct record_description DAE_TailCall_NO__TAIL__desc;
extern struct record_description DAE_Type_T__ARRAY__desc;
extern struct record_description DAE_Type_T__BOOL__desc;
extern struct record_description DAE_Type_T__INTEGER__desc;
extern struct record_description DAE_Type_T__REAL__desc;
extern struct record_description DAE_VarDirection_BIDIR__desc;
extern struct record_description DAE_VarKind_DISCRETE__desc;
extern struct record_description DAE_VarKind_PARAM__desc;
extern struct record_description DAE_VarKind_VARIABLE__desc;
extern struct record_description DAE_VarParallelism_NON__PARALLEL__desc;
extern struct record_description DAE_VarVisibility_PUBLIC__desc;
extern struct record_description Flags_ConfigFlag_CONFIG__FLAG__desc;
extern struct record_description Flags_FlagData_BOOL__FLAG__desc;
extern struct record_description Flags_FlagData_REAL__FLAG__desc;
extern struct record_description Flags_FlagVisibility_INTERNAL__desc;
extern struct record_description Gettext_TranslatableContent_gettext__desc;
extern struct record_description SourceInfo_SOURCEINFO__desc;
extern struct record_description StateMachineFlatten_FlatSmSemantics_FLAT__SM__SEMANTICS__desc;
extern struct record_description StateMachineFlatten_Transition_TRANSITION__desc;
#define boxptr_StateMachineFlatten_extractSmOfExps omc_StateMachineFlatten_extractSmOfExps
#define boxptr_StateMachineFlatten_wrapHack omc_StateMachineFlatten_wrapHack
DLLExport
modelica_string omc_StateMachineFlatten_dumpTransitionStr(threadData_t *threadData, modelica_metatype _transition);
#define boxptr_StateMachineFlatten_dumpTransitionStr omc_StateMachineFlatten_dumpTransitionStr
static const MMC_DEFSTRUCTLIT(boxvar_lit_StateMachineFlatten_dumpTransitionStr,2,0) {(void*) boxptr_StateMachineFlatten_dumpTransitionStr,0}};
#define boxvar_StateMachineFlatten_dumpTransitionStr MMC_REFSTRUCTLIT(boxvar_lit_StateMachineFlatten_dumpTransitionStr)
#define boxptr_StateMachineFlatten_createTransition omc_StateMachineFlatten_createTransition
#define boxptr_StateMachineFlatten_extractCondtionFromTransition omc_StateMachineFlatten_extractCondtionFromTransition
#define boxptr_StateMachineFlatten_createTandC omc_StateMachineFlatten_createTandC
#define boxptr_StateMachineFlatten_createVarWithStartValue omc_StateMachineFlatten_createVarWithStartValue
#define boxptr_StateMachineFlatten_createVarWithDefaults omc_StateMachineFlatten_createVarWithDefaults
#define boxptr_StateMachineFlatten_qCref omc_StateMachineFlatten_qCref
#define boxptr_StateMachineFlatten_basicFlatSmSemantics omc_StateMachineFlatten_basicFlatSmSemantics
#define boxptr_StateMachineFlatten_setVarFixedStartValue omc_StateMachineFlatten_setVarFixedStartValue
#define boxptr_StateMachineFlatten_createTicksInStateIndicator omc_StateMachineFlatten_createTicksInStateIndicator
#define boxptr_StateMachineFlatten_createTimeEnteredStateIndicator omc_StateMachineFlatten_createTimeEnteredStateIndicator
#define boxptr_StateMachineFlatten_createTimeInStateIndicator omc_StateMachineFlatten_createTimeInStateIndicator
#define boxptr_StateMachineFlatten_addPropagationEquations omc_StateMachineFlatten_addPropagationEquations
#define boxptr_StateMachineFlatten_getStartAttrOption omc_StateMachineFlatten_getStartAttrOption
#define boxptr_StateMachineFlatten_wrapInStateActivationConditionalCT omc_StateMachineFlatten_wrapInStateActivationConditionalCT
#define boxptr_StateMachineFlatten_createResetEquation omc_StateMachineFlatten_createResetEquation
#define boxptr_StateMachineFlatten_createResetEquationCT omc_StateMachineFlatten_createResetEquationCT
#define boxptr_StateMachineFlatten_addStateActivationAndReset1 omc_StateMachineFlatten_addStateActivationAndReset1
#define boxptr_StateMachineFlatten_addStateActivationAndReset omc_StateMachineFlatten_addStateActivationAndReset
#define boxptr_StateMachineFlatten_smCompToDataFlow omc_StateMachineFlatten_smCompToDataFlow
#define boxptr_StateMachineFlatten_elabXInStateOps omc_StateMachineFlatten_elabXInStateOps
#define boxptr_StateMachineFlatten_traversingSubsTicksInState omc_StateMachineFlatten_traversingSubsTicksInState
#define boxptr_StateMachineFlatten_elabXInStateOps__CT omc_StateMachineFlatten_elabXInStateOps__CT
#define boxptr_StateMachineFlatten_flatSmToDataFlow omc_StateMachineFlatten_flatSmToDataFlow
DLLExport
modelica_metatype omc_StateMachineFlatten_stateMachineToDataFlow(threadData_t *threadData, modelica_metatype _cache, modelica_metatype _env, modelica_metatype _inDAElist);
#define boxptr_StateMachineFlatten_stateMachineToDataFlow omc_StateMachineFlatten_stateMachineToDataFlow
static const MMC_DEFSTRUCTLIT(boxvar_lit_StateMachineFlatten_stateMachineToDataFlow,2,0) {(void*) boxptr_StateMachineFlatten_stateMachineToDataFlow,0}};
#define boxvar_StateMachineFlatten_stateMachineToDataFlow MMC_REFSTRUCTLIT(boxvar_lit_StateMachineFlatten_stateMachineToDataFlow)
#ifdef __cplusplus
}
#endif
#endif
