#ifdef OMC_BASE_FILE
#define OMC_FILE OMC_BASE_FILE
#else
#define OMC_FILE "Inst.c"
#endif
#include "omc_simulation_settings.h"
#include "Inst.h"
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT0,1,5) {&ErrorTypes_MessageType_TRANSLATION__desc,}};
#define _OMC_LIT0 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT0)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT1,1,4) {&ErrorTypes_Severity_ERROR__desc,}};
#define _OMC_LIT1 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT1)
#define _OMC_LIT2_data "Cannot instantiate %s due to class specialization %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT2,53,_OMC_LIT2_data);
#define _OMC_LIT2 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT2)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT3,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT2}};
#define _OMC_LIT3 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT3)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT4,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(525)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT3}};
#define _OMC_LIT4 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT4)
#define _OMC_LIT5_data "."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT5,1,_OMC_LIT5_data);
#define _OMC_LIT5 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT5)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT6,1,4) {&UnitAbsyn_InstStore_NOSTORE__desc,}};
#define _OMC_LIT6 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT6)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT7,1,5) {&DAE_Mod_NOMOD__desc,}};
#define _OMC_LIT7 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT7)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT8,1,3) {&DAE_Prefix_NOPRE__desc,}};
#define _OMC_LIT8 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT8)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT9,1,3) {&InstTypes_CallingScope_TOP__CALL__desc,}};
#define _OMC_LIT9 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT9)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT10,7,3) {&ConnectionGraph_ConnectionGraph_GRAPH__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1)),MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT10 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT10)
#define _OMC_LIT11_data ""
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT11,0,_OMC_LIT11_data);
#define _OMC_LIT11 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT11)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT12,1,6) {&DAE_ComponentRef_WILD__desc,}};
#define _OMC_LIT12 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT12)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT13,5,3) {&DAE_Connect_SetTrieNode_SET__TRIE__NODE__desc,_OMC_LIT11,_OMC_LIT12,MMC_REFSTRUCTLIT(mmc_nil),MMC_IMMEDIATE(MMC_TAGFIXNUM(0))}};
#define _OMC_LIT13 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT13)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT14,5,3) {&DAE_Connect_Sets_SETS__desc,_OMC_LIT13,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT14 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT14)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT15,2,3) {&DAE_DAElist_DAE__desc,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT15 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT15)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT16,1,5) {&SCode_Mod_NOMOD__desc,}};
#define _OMC_LIT16 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT16)
#define _OMC_LIT17_data "\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT17,1,_OMC_LIT17_data);
#define _OMC_LIT17 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT17)
#define _OMC_LIT18_data "showInstCacheInfo"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT18,17,_OMC_LIT18_data);
#define _OMC_LIT18 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT18)
#define _OMC_LIT19_data "Prints information about instantiation cache hits and additions. Defaults to false."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT19,83,_OMC_LIT19_data);
#define _OMC_LIT19 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT19)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT20,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT19}};
#define _OMC_LIT20 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT20)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT21,5,3) {&Flags_DebugFlag_DEBUG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(107)),_OMC_LIT18,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),_OMC_LIT20}};
#define _OMC_LIT21 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT21)
#define _OMC_LIT22_data "$"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT22,1,_OMC_LIT22_data);
#define _OMC_LIT22 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT22)
#define _OMC_LIT23_data "Cache"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT23,5,_OMC_LIT23_data);
#define _OMC_LIT23 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT23)
#define _OMC_LIT24_data "Turns off the instantiation cache."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT24,34,_OMC_LIT24_data);
#define _OMC_LIT24 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT24)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT25,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT24}};
#define _OMC_LIT25 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT25)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT26,5,3) {&Flags_DebugFlag_DEBUG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(17)),_OMC_LIT23,MMC_IMMEDIATE(MMC_TAGFIXNUM(1)),_OMC_LIT25}};
#define _OMC_LIT26 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT26)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT27,1,4) {&InstTypes_CallingScope_INNER__CALL__desc,}};
#define _OMC_LIT27 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT27)
#define _OMC_LIT28_data "abs"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT28,3,_OMC_LIT28_data);
#define _OMC_LIT28 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT28)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT29,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT28}};
#define _OMC_LIT29 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT29)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT30,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT29}};
#define _OMC_LIT30 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT30)
#define _OMC_LIT31_data "acos"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT31,4,_OMC_LIT31_data);
#define _OMC_LIT31 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT31)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT32,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT31}};
#define _OMC_LIT32 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT32)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT33,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT32}};
#define _OMC_LIT33 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT33)
#define _OMC_LIT34_data "activeState"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT34,11,_OMC_LIT34_data);
#define _OMC_LIT34 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT34)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT35,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT34}};
#define _OMC_LIT35 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT35)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT36,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT35}};
#define _OMC_LIT36 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT36)
#define _OMC_LIT37_data "actualStream"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT37,12,_OMC_LIT37_data);
#define _OMC_LIT37 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT37)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT38,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT37}};
#define _OMC_LIT38 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT38)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT39,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT38}};
#define _OMC_LIT39 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT39)
#define _OMC_LIT40_data "asin"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT40,4,_OMC_LIT40_data);
#define _OMC_LIT40 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT40)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT41,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT40}};
#define _OMC_LIT41 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT41)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT42,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT41}};
#define _OMC_LIT42 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT42)
#define _OMC_LIT43_data "atan"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT43,4,_OMC_LIT43_data);
#define _OMC_LIT43 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT43)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT44,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT43}};
#define _OMC_LIT44 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT44)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT45,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT44}};
#define _OMC_LIT45 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT45)
#define _OMC_LIT46_data "atan2"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT46,5,_OMC_LIT46_data);
#define _OMC_LIT46 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT46)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT47,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT46}};
#define _OMC_LIT47 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT47)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT48,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT47}};
#define _OMC_LIT48 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT48)
#define _OMC_LIT49_data "backSample"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT49,10,_OMC_LIT49_data);
#define _OMC_LIT49 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT49)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT50,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT49}};
#define _OMC_LIT50 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT50)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT51,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT50}};
#define _OMC_LIT51 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT51)
#define _OMC_LIT52_data "cardinality"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT52,11,_OMC_LIT52_data);
#define _OMC_LIT52 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT52)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT53,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT52}};
#define _OMC_LIT53 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT53)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT54,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT53}};
#define _OMC_LIT54 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT54)
#define _OMC_LIT55_data "cat"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT55,3,_OMC_LIT55_data);
#define _OMC_LIT55 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT55)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT56,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT55}};
#define _OMC_LIT56 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT56)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT57,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT56}};
#define _OMC_LIT57 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT57)
#define _OMC_LIT58_data "ceil"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT58,4,_OMC_LIT58_data);
#define _OMC_LIT58 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT58)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT59,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT58}};
#define _OMC_LIT59 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT59)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT60,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT59}};
#define _OMC_LIT60 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT60)
#define _OMC_LIT61_data "change"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT61,6,_OMC_LIT61_data);
#define _OMC_LIT61 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT61)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT62,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT61}};
#define _OMC_LIT62 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT62)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT63,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT62}};
#define _OMC_LIT63 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT63)
#define _OMC_LIT64_data "classDirectory"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT64,14,_OMC_LIT64_data);
#define _OMC_LIT64 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT64)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT65,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT64}};
#define _OMC_LIT65 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT65)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT66,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT65}};
#define _OMC_LIT66 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT66)
#define _OMC_LIT67_data "cos"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT67,3,_OMC_LIT67_data);
#define _OMC_LIT67 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT67)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT68,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT67}};
#define _OMC_LIT68 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT68)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT69,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT68}};
#define _OMC_LIT69 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT69)
#define _OMC_LIT70_data "cosh"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT70,4,_OMC_LIT70_data);
#define _OMC_LIT70 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT70)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT71,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT70}};
#define _OMC_LIT71 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT71)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT72,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT71}};
#define _OMC_LIT72 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT72)
#define _OMC_LIT73_data "cross"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT73,5,_OMC_LIT73_data);
#define _OMC_LIT73 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT73)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT74,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT73}};
#define _OMC_LIT74 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT74)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT75,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT74}};
#define _OMC_LIT75 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT75)
#define _OMC_LIT76_data "delay"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT76,5,_OMC_LIT76_data);
#define _OMC_LIT76 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT76)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT77,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT76}};
#define _OMC_LIT77 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT77)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT78,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT77}};
#define _OMC_LIT78 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT78)
#define _OMC_LIT79_data "der"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT79,3,_OMC_LIT79_data);
#define _OMC_LIT79 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT79)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT80,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT79}};
#define _OMC_LIT80 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT80)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT81,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT80}};
#define _OMC_LIT81 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT81)
#define _OMC_LIT82_data "diagonal"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT82,8,_OMC_LIT82_data);
#define _OMC_LIT82 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT82)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT83,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT82}};
#define _OMC_LIT83 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT83)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT84,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT83}};
#define _OMC_LIT84 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT84)
#define _OMC_LIT85_data "div"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT85,3,_OMC_LIT85_data);
#define _OMC_LIT85 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT85)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT86,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT85}};
#define _OMC_LIT86 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT86)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT87,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT86}};
#define _OMC_LIT87 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT87)
#define _OMC_LIT88_data "edge"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT88,4,_OMC_LIT88_data);
#define _OMC_LIT88 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT88)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT89,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT88}};
#define _OMC_LIT89 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT89)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT90,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT89}};
#define _OMC_LIT90 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT90)
#define _OMC_LIT91_data "exp"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT91,3,_OMC_LIT91_data);
#define _OMC_LIT91 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT91)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT92,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT91}};
#define _OMC_LIT92 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT92)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT93,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT92}};
#define _OMC_LIT93 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT93)
#define _OMC_LIT94_data "fill"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT94,4,_OMC_LIT94_data);
#define _OMC_LIT94 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT94)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT95,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT94}};
#define _OMC_LIT95 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT95)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT96,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT95}};
#define _OMC_LIT96 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT96)
#define _OMC_LIT97_data "firstTick"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT97,9,_OMC_LIT97_data);
#define _OMC_LIT97 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT97)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT98,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT97}};
#define _OMC_LIT98 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT98)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT99,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT98}};
#define _OMC_LIT99 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT99)
#define _OMC_LIT100_data "floor"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT100,5,_OMC_LIT100_data);
#define _OMC_LIT100 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT100)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT101,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT100}};
#define _OMC_LIT101 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT101)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT102,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT101}};
#define _OMC_LIT102 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT102)
#define _OMC_LIT103_data "getInstanceName"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT103,15,_OMC_LIT103_data);
#define _OMC_LIT103 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT103)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT104,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT103}};
#define _OMC_LIT104 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT104)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT105,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT104}};
#define _OMC_LIT105 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT105)
#define _OMC_LIT106_data "hold"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT106,4,_OMC_LIT106_data);
#define _OMC_LIT106 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT106)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT107,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT106}};
#define _OMC_LIT107 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT107)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT108,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT107}};
#define _OMC_LIT108 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT108)
#define _OMC_LIT109_data "homotopy"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT109,8,_OMC_LIT109_data);
#define _OMC_LIT109 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT109)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT110,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT109}};
#define _OMC_LIT110 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT110)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT111,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT110}};
#define _OMC_LIT111 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT111)
#define _OMC_LIT112_data "identity"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT112,8,_OMC_LIT112_data);
#define _OMC_LIT112 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT112)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT113,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT112}};
#define _OMC_LIT113 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT113)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT114,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT113}};
#define _OMC_LIT114 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT114)
#define _OMC_LIT115_data "inStream"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT115,8,_OMC_LIT115_data);
#define _OMC_LIT115 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT115)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT116,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT115}};
#define _OMC_LIT116 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT116)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT117,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT116}};
#define _OMC_LIT117 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT117)
#define _OMC_LIT118_data "initial"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT118,7,_OMC_LIT118_data);
#define _OMC_LIT118 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT118)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT119,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT118}};
#define _OMC_LIT119 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT119)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT120,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT119}};
#define _OMC_LIT120 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT120)
#define _OMC_LIT121_data "initialState"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT121,12,_OMC_LIT121_data);
#define _OMC_LIT121 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT121)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT122,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT121}};
#define _OMC_LIT122 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT122)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT123,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT122}};
#define _OMC_LIT123 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT123)
#define _OMC_LIT124_data "integer"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT124,7,_OMC_LIT124_data);
#define _OMC_LIT124 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT124)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT125,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT124}};
#define _OMC_LIT125 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT125)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT126,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT125}};
#define _OMC_LIT126 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT126)
#define _OMC_LIT127_data "interval"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT127,8,_OMC_LIT127_data);
#define _OMC_LIT127 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT127)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT128,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT127}};
#define _OMC_LIT128 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT128)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT129,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT128}};
#define _OMC_LIT129 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT129)
#define _OMC_LIT130_data "intAbs"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT130,6,_OMC_LIT130_data);
#define _OMC_LIT130 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT130)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT131,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT130}};
#define _OMC_LIT131 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT131)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT132,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT131}};
#define _OMC_LIT132 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT132)
#define _OMC_LIT133_data "linspace"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT133,8,_OMC_LIT133_data);
#define _OMC_LIT133 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT133)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT134,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT133}};
#define _OMC_LIT134 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT134)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT135,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT134}};
#define _OMC_LIT135 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT135)
#define _OMC_LIT136_data "log"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT136,3,_OMC_LIT136_data);
#define _OMC_LIT136 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT136)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT137,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT136}};
#define _OMC_LIT137 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT137)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT138,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT137}};
#define _OMC_LIT138 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT138)
#define _OMC_LIT139_data "log10"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT139,5,_OMC_LIT139_data);
#define _OMC_LIT139 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT139)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT140,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT139}};
#define _OMC_LIT140 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT140)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT141,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT140}};
#define _OMC_LIT141 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT141)
#define _OMC_LIT142_data "matrix"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT142,6,_OMC_LIT142_data);
#define _OMC_LIT142 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT142)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT143,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT142}};
#define _OMC_LIT143 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT143)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT144,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT143}};
#define _OMC_LIT144 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT144)
#define _OMC_LIT145_data "max"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT145,3,_OMC_LIT145_data);
#define _OMC_LIT145 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT145)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT146,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT145}};
#define _OMC_LIT146 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT146)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT147,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT146}};
#define _OMC_LIT147 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT147)
#define _OMC_LIT148_data "min"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT148,3,_OMC_LIT148_data);
#define _OMC_LIT148 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT148)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT149,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT148}};
#define _OMC_LIT149 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT149)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT150,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT149}};
#define _OMC_LIT150 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT150)
#define _OMC_LIT151_data "mod"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT151,3,_OMC_LIT151_data);
#define _OMC_LIT151 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT151)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT152,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT151}};
#define _OMC_LIT152 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT152)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT153,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT152}};
#define _OMC_LIT153 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT153)
#define _OMC_LIT154_data "ndims"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT154,5,_OMC_LIT154_data);
#define _OMC_LIT154 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT154)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT155,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT154}};
#define _OMC_LIT155 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT155)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT156,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT155}};
#define _OMC_LIT156 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT156)
#define _OMC_LIT157_data "noClock"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT157,7,_OMC_LIT157_data);
#define _OMC_LIT157 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT157)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT158,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT157}};
#define _OMC_LIT158 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT158)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT159,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT158}};
#define _OMC_LIT159 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT159)
#define _OMC_LIT160_data "noEvent"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT160,7,_OMC_LIT160_data);
#define _OMC_LIT160 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT160)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT161,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT160}};
#define _OMC_LIT161 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT161)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT162,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT161}};
#define _OMC_LIT162 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT162)
#define _OMC_LIT163_data "ones"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT163,4,_OMC_LIT163_data);
#define _OMC_LIT163 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT163)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT164,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT163}};
#define _OMC_LIT164 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT164)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT165,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT164}};
#define _OMC_LIT165 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT165)
#define _OMC_LIT166_data "outerProduct"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT166,12,_OMC_LIT166_data);
#define _OMC_LIT166 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT166)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT167,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT166}};
#define _OMC_LIT167 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT167)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT168,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT167}};
#define _OMC_LIT168 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT168)
#define _OMC_LIT169_data "pre"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT169,3,_OMC_LIT169_data);
#define _OMC_LIT169 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT169)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT170,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT169}};
#define _OMC_LIT170 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT170)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT171,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT170}};
#define _OMC_LIT171 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT171)
#define _OMC_LIT172_data "previous"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT172,8,_OMC_LIT172_data);
#define _OMC_LIT172 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT172)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT173,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT172}};
#define _OMC_LIT173 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT173)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT174,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT173}};
#define _OMC_LIT174 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT174)
#define _OMC_LIT175_data "print"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT175,5,_OMC_LIT175_data);
#define _OMC_LIT175 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT175)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT176,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT175}};
#define _OMC_LIT176 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT176)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT177,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT176}};
#define _OMC_LIT177 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT177)
#define _OMC_LIT178_data "product"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT178,7,_OMC_LIT178_data);
#define _OMC_LIT178 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT178)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT179,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT178}};
#define _OMC_LIT179 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT179)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT180,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT179}};
#define _OMC_LIT180 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT180)
#define _OMC_LIT181_data "realAbs"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT181,7,_OMC_LIT181_data);
#define _OMC_LIT181 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT181)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT182,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT181}};
#define _OMC_LIT182 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT182)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT183,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT182}};
#define _OMC_LIT183 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT183)
#define _OMC_LIT184_data "rem"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT184,3,_OMC_LIT184_data);
#define _OMC_LIT184 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT184)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT185,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT184}};
#define _OMC_LIT185 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT185)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT186,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT185}};
#define _OMC_LIT186 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT186)
#define _OMC_LIT187_data "rooted"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT187,6,_OMC_LIT187_data);
#define _OMC_LIT187 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT187)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT188,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT187}};
#define _OMC_LIT188 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT188)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT189,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT188}};
#define _OMC_LIT189 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT189)
#define _OMC_LIT190_data "sample"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT190,6,_OMC_LIT190_data);
#define _OMC_LIT190 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT190)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT191,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT190}};
#define _OMC_LIT191 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT191)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT192,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT191}};
#define _OMC_LIT192 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT192)
#define _OMC_LIT193_data "scalar"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT193,6,_OMC_LIT193_data);
#define _OMC_LIT193 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT193)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT194,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT193}};
#define _OMC_LIT194 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT194)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT195,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT194}};
#define _OMC_LIT195 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT195)
#define _OMC_LIT196_data "semilinear"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT196,10,_OMC_LIT196_data);
#define _OMC_LIT196 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT196)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT197,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT196}};
#define _OMC_LIT197 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT197)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT198,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT197}};
#define _OMC_LIT198 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT198)
#define _OMC_LIT199_data "shiftSample"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT199,11,_OMC_LIT199_data);
#define _OMC_LIT199 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT199)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT200,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT199}};
#define _OMC_LIT200 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT200)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT201,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT200}};
#define _OMC_LIT201 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT201)
#define _OMC_LIT202_data "sign"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT202,4,_OMC_LIT202_data);
#define _OMC_LIT202 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT202)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT203,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT202}};
#define _OMC_LIT203 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT203)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT204,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT203}};
#define _OMC_LIT204 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT204)
#define _OMC_LIT205_data "sin"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT205,3,_OMC_LIT205_data);
#define _OMC_LIT205 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT205)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT206,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT205}};
#define _OMC_LIT206 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT206)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT207,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT206}};
#define _OMC_LIT207 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT207)
#define _OMC_LIT208_data "sinh"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT208,4,_OMC_LIT208_data);
#define _OMC_LIT208 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT208)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT209,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT208}};
#define _OMC_LIT209 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT209)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT210,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT209}};
#define _OMC_LIT210 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT210)
#define _OMC_LIT211_data "size"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT211,4,_OMC_LIT211_data);
#define _OMC_LIT211 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT211)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT212,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT211}};
#define _OMC_LIT212 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT212)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT213,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT212}};
#define _OMC_LIT213 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT213)
#define _OMC_LIT214_data "skew"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT214,4,_OMC_LIT214_data);
#define _OMC_LIT214 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT214)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT215,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT214}};
#define _OMC_LIT215 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT215)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT216,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT215}};
#define _OMC_LIT216 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT216)
#define _OMC_LIT217_data "smooth"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT217,6,_OMC_LIT217_data);
#define _OMC_LIT217 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT217)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT218,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT217}};
#define _OMC_LIT218 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT218)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT219,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT218}};
#define _OMC_LIT219 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT219)
#define _OMC_LIT220_data "spatialDistribution"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT220,19,_OMC_LIT220_data);
#define _OMC_LIT220 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT220)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT221,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT220}};
#define _OMC_LIT221 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT221)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT222,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT221}};
#define _OMC_LIT222 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT222)
#define _OMC_LIT223_data "sqrt"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT223,4,_OMC_LIT223_data);
#define _OMC_LIT223 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT223)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT224,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT223}};
#define _OMC_LIT224 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT224)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT225,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT224}};
#define _OMC_LIT225 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT225)
#define _OMC_LIT226_data "subSample"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT226,9,_OMC_LIT226_data);
#define _OMC_LIT226 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT226)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT227,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT226}};
#define _OMC_LIT227 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT227)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT228,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT227}};
#define _OMC_LIT228 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT228)
#define _OMC_LIT229_data "symmetric"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT229,9,_OMC_LIT229_data);
#define _OMC_LIT229 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT229)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT230,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT229}};
#define _OMC_LIT230 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT230)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT231,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT230}};
#define _OMC_LIT231 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT231)
#define _OMC_LIT232_data "tan"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT232,3,_OMC_LIT232_data);
#define _OMC_LIT232 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT232)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT233,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT232}};
#define _OMC_LIT233 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT233)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT234,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT233}};
#define _OMC_LIT234 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT234)
#define _OMC_LIT235_data "tanh"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT235,4,_OMC_LIT235_data);
#define _OMC_LIT235 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT235)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT236,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT235}};
#define _OMC_LIT236 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT236)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT237,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT236}};
#define _OMC_LIT237 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT237)
#define _OMC_LIT238_data "terminal"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT238,8,_OMC_LIT238_data);
#define _OMC_LIT238 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT238)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT239,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT238}};
#define _OMC_LIT239 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT239)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT240,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT239}};
#define _OMC_LIT240 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT240)
#define _OMC_LIT241_data "ticksInState"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT241,12,_OMC_LIT241_data);
#define _OMC_LIT241 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT241)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT242,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT241}};
#define _OMC_LIT242 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT242)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT243,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT242}};
#define _OMC_LIT243 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT243)
#define _OMC_LIT244_data "timeInState"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT244,11,_OMC_LIT244_data);
#define _OMC_LIT244 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT244)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT245,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT244}};
#define _OMC_LIT245 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT245)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT246,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT245}};
#define _OMC_LIT246 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT246)
#define _OMC_LIT247_data "transition"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT247,10,_OMC_LIT247_data);
#define _OMC_LIT247 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT247)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT248,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT247}};
#define _OMC_LIT248 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT248)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT249,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT248}};
#define _OMC_LIT249 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT249)
#define _OMC_LIT250_data "transpose"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT250,9,_OMC_LIT250_data);
#define _OMC_LIT250 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT250)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT251,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT250}};
#define _OMC_LIT251 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT251)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT252,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT251}};
#define _OMC_LIT252 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT252)
#define _OMC_LIT253_data "vector"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT253,6,_OMC_LIT253_data);
#define _OMC_LIT253 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT253)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT254,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT253}};
#define _OMC_LIT254 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT254)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT255,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT254}};
#define _OMC_LIT255 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT255)
#define _OMC_LIT256_data "zeros"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT256,5,_OMC_LIT256_data);
#define _OMC_LIT256 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT256)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT257,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT256}};
#define _OMC_LIT257 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT257)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT258,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT257}};
#define _OMC_LIT258 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT258)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT259,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT11}};
#define _OMC_LIT259 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT259)
#define _OMC_LIT260_data "Inst.removeSelfReferenceAndUpdate"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT260,33,_OMC_LIT260_data);
#define _OMC_LIT260 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT260)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT261,3,3) {&SCode_Comment_COMMENT__desc,MMC_REFSTRUCTLIT(mmc_none),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT261 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT261)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT262,1,3) {&DAE_Binding_UNBOUND__desc,}};
#define _OMC_LIT262 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT262)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT263,1,4) {&FCore_Status_VAR__TYPED__desc,}};
#define _OMC_LIT263 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT263)
#define _OMC_LIT264_data "No classes are loaded."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT264,22,_OMC_LIT264_data);
#define _OMC_LIT264 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT264)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT265,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT264}};
#define _OMC_LIT265 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT265)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT266,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(37)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT265}};
#define _OMC_LIT266 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT266)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT267,1,3) {&FCore_Kind_USERDEFINED__desc,}};
#define _OMC_LIT267 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT267)
static const MMC_DEFREALLIT(_OMC_LIT_STRUCT268,0.0);
#define _OMC_LIT268 MMC_REFREALLIT(_OMC_LIT_STRUCT268)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT269,8,3) {&SourceInfo_SOURCEINFO__desc,_OMC_LIT11,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),_OMC_LIT268}};
#define _OMC_LIT269 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT269)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT270,1,1) {_OMC_LIT269}};
#define _OMC_LIT270 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT270)
#define _OMC_LIT271_data "Error occurred while flattening model %s"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT271,40,_OMC_LIT271_data);
#define _OMC_LIT271 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT271)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT272,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT271}};
#define _OMC_LIT272 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT272)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT273,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(89)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT272}};
#define _OMC_LIT273 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT273)
#define _OMC_LIT274_data "failtrace"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT274,9,_OMC_LIT274_data);
#define _OMC_LIT274 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT274)
#define _OMC_LIT275_data "Sets whether to print a failtrace or not."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT275,41,_OMC_LIT275_data);
#define _OMC_LIT275 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT275)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT276,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT275}};
#define _OMC_LIT276 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT276)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT277,5,3) {&Flags_DebugFlag_DEBUG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1)),_OMC_LIT274,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),_OMC_LIT276}};
#define _OMC_LIT277 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT277)
#define _OMC_LIT278_data "- Inst.insertClassAttribute failed\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT278,35,_OMC_LIT278_data);
#define _OMC_LIT278 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT278)
#define _OMC_LIT279_data "objective"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT279,9,_OMC_LIT279_data);
#define _OMC_LIT279 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT279)
#define _OMC_LIT280_data "objectiveIntegrand"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT280,18,_OMC_LIT280_data);
#define _OMC_LIT280 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT280)
#define _OMC_LIT281_data "startTime"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT281,9,_OMC_LIT281_data);
#define _OMC_LIT281 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT281)
#define _OMC_LIT282_data "finalTime"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT282,9,_OMC_LIT282_data);
#define _OMC_LIT282 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT282)
#define _OMC_LIT283_data "Optimica: %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT283,13,_OMC_LIT283_data);
#define _OMC_LIT283 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT283)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT284,2,4) {&Gettext_TranslatableContent_notrans__desc,_OMC_LIT283}};
#define _OMC_LIT284 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT284)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT285,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(7006)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT284}};
#define _OMC_LIT285 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT285)
#define _OMC_LIT286_data "Class Attributes allowed only for Optimization classes."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT286,55,_OMC_LIT286_data);
#define _OMC_LIT286 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT286)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT287,2,1) {_OMC_LIT286,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT287 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT287)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT288,5,3) {&DAE_ClassAttributes_OPTIMIZATION__ATTRS__desc,MMC_REFSTRUCTLIT(mmc_none),MMC_REFSTRUCTLIT(mmc_none),MMC_REFSTRUCTLIT(mmc_none),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT288 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT288)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT289,2,31) {&DAE_Element_CLASS__ATTRIBUTES__desc,_OMC_LIT288}};
#define _OMC_LIT289 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT289)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT290,2,1) {_OMC_LIT289,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT290 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT290)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT291,2,3) {&DAE_DAElist_DAE__desc,_OMC_LIT290}};
#define _OMC_LIT291 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT291)
#define _OMC_LIT292_data "- Inst.instClassAttributes failed\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT292,34,_OMC_LIT292_data);
#define _OMC_LIT292 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT292)
#define _OMC_LIT293_data "- Inst.instConstraints failed\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT293,30,_OMC_LIT293_data);
#define _OMC_LIT293 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT293)
#define _OMC_LIT294_data "Boolean"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT294,7,_OMC_LIT294_data);
#define _OMC_LIT294 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT294)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT295,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT294}};
#define _OMC_LIT295 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT295)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT296,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT295}};
#define _OMC_LIT296 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT296)
#define _OMC_LIT297_data "Integer"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT297,7,_OMC_LIT297_data);
#define _OMC_LIT297 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT297)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT298,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT297}};
#define _OMC_LIT298 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT298)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT299,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT298}};
#define _OMC_LIT299 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT299)
#define _OMC_LIT300_data "Real"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT300,4,_OMC_LIT300_data);
#define _OMC_LIT300 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT300)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT301,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT300}};
#define _OMC_LIT301 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT301)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT302,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT301}};
#define _OMC_LIT302 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT302)
#define _OMC_LIT303_data "String"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT303,6,_OMC_LIT303_data);
#define _OMC_LIT303 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT303)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT304,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT303}};
#define _OMC_LIT304 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT304)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT305,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT304}};
#define _OMC_LIT305 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT305)
#define _OMC_LIT306_data "EnumType"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT306,8,_OMC_LIT306_data);
#define _OMC_LIT306 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT306)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT307,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT306}};
#define _OMC_LIT307 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT307)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT308,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT307}};
#define _OMC_LIT308 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT308)
#define _OMC_LIT309_data "assert"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT309,6,_OMC_LIT309_data);
#define _OMC_LIT309 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT309)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT310,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT309}};
#define _OMC_LIT310 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT310)
#define _OMC_LIT311_data "reinit"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT311,6,_OMC_LIT311_data);
#define _OMC_LIT311 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT311)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT312,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT311}};
#define _OMC_LIT312 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT312)
#define _OMC_LIT313_data "list"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT313,4,_OMC_LIT313_data);
#define _OMC_LIT313 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT313)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT314,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT313}};
#define _OMC_LIT314 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT314)
#define _OMC_LIT315_data "Option"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT315,6,_OMC_LIT315_data);
#define _OMC_LIT315 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT315)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT316,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT315}};
#define _OMC_LIT316 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT316)
#define _OMC_LIT317_data "tuple"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT317,5,_OMC_LIT317_data);
#define _OMC_LIT317 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT317)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT318,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT317}};
#define _OMC_LIT318 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT318)
#define _OMC_LIT319_data "polymorphic"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT319,11,_OMC_LIT319_data);
#define _OMC_LIT319 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT319)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT320,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT319}};
#define _OMC_LIT320 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT320)
#define _OMC_LIT321_data "array"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT321,5,_OMC_LIT321_data);
#define _OMC_LIT321 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT321)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT322,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT321}};
#define _OMC_LIT322 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT322)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT323,1,4) {&InstTypes_SearchStrategy_SEARCH__ALSO__BUILTIN__desc,}};
#define _OMC_LIT323 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT323)
#define _OMC_LIT324_data "updateComponentInEnv3"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT324,21,_OMC_LIT324_data);
#define _OMC_LIT324 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT324)
#define _OMC_LIT325_data "Inst.updateComponentInEnv2"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT325,26,_OMC_LIT325_data);
#define _OMC_LIT325 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT325)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT326,1,7) {&FCore_Status_CLS__UNTYPED__desc,}};
#define _OMC_LIT326 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT326)
#define _OMC_LIT327_data "- Inst.updateComponentInEnv failed, cref = "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT327,43,_OMC_LIT327_data);
#define _OMC_LIT327 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT327)
#define _OMC_LIT328_data " mods: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT328,7,_OMC_LIT328_data);
#define _OMC_LIT328 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT328)
#define _OMC_LIT329_data " scope: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT329,8,_OMC_LIT329_data);
#define _OMC_LIT329 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT329)
#define _OMC_LIT330_data " prefix: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT330,9,_OMC_LIT330_data);
#define _OMC_LIT330 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT330)
#define _OMC_LIT331_data "updateComponentsInEnv__"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT331,23,_OMC_LIT331_data);
#define _OMC_LIT331 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT331)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT332,1,4) {&SCode_Each_NOT__EACH__desc,}};
#define _OMC_LIT332 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT332)
#define _OMC_LIT333_data "updateCompeltsMods"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT333,18,_OMC_LIT333_data);
#define _OMC_LIT333 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT333)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT334,1,11) {&DAE_Type_T__UNKNOWN__desc,}};
#define _OMC_LIT334 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT334)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT335,2,3) {&DAE_Dimension_DIM__INTEGER__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT335 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT335)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT336,2,1) {_OMC_LIT335,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT336 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT336)
#define _OMC_LIT337_data "grammar"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT337,7,_OMC_LIT337_data);
#define _OMC_LIT337 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT337)
#define _OMC_LIT338_data "g"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT338,1,_OMC_LIT338_data);
#define _OMC_LIT338 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT338)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT339,1,1) {_OMC_LIT338}};
#define _OMC_LIT339 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT339)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT340,1,4) {&Flags_FlagVisibility_EXTERNAL__desc,}};
#define _OMC_LIT340 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT340)
#define _OMC_LIT341_data "Modelica"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT341,8,_OMC_LIT341_data);
#define _OMC_LIT341 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT341)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT342,2,0) {_OMC_LIT341,MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT342 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT342)
#define _OMC_LIT343_data "MetaModelica"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT343,12,_OMC_LIT343_data);
#define _OMC_LIT343 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT343)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT344,2,0) {_OMC_LIT343,MMC_IMMEDIATE(MMC_TAGFIXNUM(2))}};
#define _OMC_LIT344 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT344)
#define _OMC_LIT345_data "ParModelica"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT345,11,_OMC_LIT345_data);
#define _OMC_LIT345 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT345)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT346,2,0) {_OMC_LIT345,MMC_IMMEDIATE(MMC_TAGFIXNUM(3))}};
#define _OMC_LIT346 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT346)
#define _OMC_LIT347_data "Optimica"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT347,8,_OMC_LIT347_data);
#define _OMC_LIT347 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT347)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT348,2,0) {_OMC_LIT347,MMC_IMMEDIATE(MMC_TAGFIXNUM(4))}};
#define _OMC_LIT348 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT348)
#define _OMC_LIT349_data "PDEModelica"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT349,11,_OMC_LIT349_data);
#define _OMC_LIT349 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT349)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT350,2,0) {_OMC_LIT349,MMC_IMMEDIATE(MMC_TAGFIXNUM(5))}};
#define _OMC_LIT350 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT350)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT351,2,1) {_OMC_LIT350,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT351 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT351)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT352,2,1) {_OMC_LIT348,_OMC_LIT351}};
#define _OMC_LIT352 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT352)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT353,2,1) {_OMC_LIT346,_OMC_LIT352}};
#define _OMC_LIT353 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT353)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT354,2,1) {_OMC_LIT344,_OMC_LIT353}};
#define _OMC_LIT354 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT354)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT355,2,1) {_OMC_LIT342,_OMC_LIT354}};
#define _OMC_LIT355 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT355)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT356,3,10) {&Flags_FlagData_ENUM__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1)),_OMC_LIT355}};
#define _OMC_LIT356 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT356)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT357,2,1) {_OMC_LIT349,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT357 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT357)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT358,2,1) {_OMC_LIT347,_OMC_LIT357}};
#define _OMC_LIT358 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT358)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT359,2,1) {_OMC_LIT345,_OMC_LIT358}};
#define _OMC_LIT359 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT359)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT360,2,1) {_OMC_LIT343,_OMC_LIT359}};
#define _OMC_LIT360 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT360)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT361,2,1) {_OMC_LIT341,_OMC_LIT360}};
#define _OMC_LIT361 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT361)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT362,2,3) {&Flags_ValidOptions_STRING__OPTION__desc,_OMC_LIT361}};
#define _OMC_LIT362 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT362)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT363,1,1) {_OMC_LIT362}};
#define _OMC_LIT363 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT363)
#define _OMC_LIT364_data "Sets the grammar and semantics to accept."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT364,41,_OMC_LIT364_data);
#define _OMC_LIT364 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT364)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT365,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT364}};
#define _OMC_LIT365 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT365)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT366,8,3) {&Flags_ConfigFlag_CONFIG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(6)),_OMC_LIT337,_OMC_LIT339,_OMC_LIT340,_OMC_LIT356,_OMC_LIT363,_OMC_LIT365}};
#define _OMC_LIT366 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT366)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT367,1,5) {&FCore_Status_VAR__DAE__desc,}};
#define _OMC_LIT367 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT367)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT368,1,3) {&SCode_Visibility_PUBLIC__desc,}};
#define _OMC_LIT368 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT368)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT369,1,4) {&SCode_Redeclare_NOT__REDECLARE__desc,}};
#define _OMC_LIT369 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT369)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT370,1,4) {&SCode_Final_NOT__FINAL__desc,}};
#define _OMC_LIT370 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT370)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT371,1,6) {&Absyn_InnerOuter_NOT__INNER__OUTER__desc,}};
#define _OMC_LIT371 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT371)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT372,1,4) {&SCode_Replaceable_NOT__REPLACEABLE__desc,}};
#define _OMC_LIT372 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT372)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT373,6,3) {&SCode_Prefixes_PREFIXES__desc,_OMC_LIT368,_OMC_LIT369,_OMC_LIT370,_OMC_LIT371,_OMC_LIT372}};
#define _OMC_LIT373 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT373)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT374,1,4) {&SCode_Encapsulated_NOT__ENCAPSULATED__desc,}};
#define _OMC_LIT374 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT374)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT375,1,4) {&SCode_Partial_NOT__PARTIAL__desc,}};
#define _OMC_LIT375 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT375)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT376,1,10) {&SCode_Restriction_R__TYPE__desc,}};
#define _OMC_LIT376 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT376)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT377,1,5) {&SCode_Parallelism_NON__PARALLEL__desc,}};
#define _OMC_LIT377 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT377)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT378,1,3) {&SCode_Variability_VAR__desc,}};
#define _OMC_LIT378 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT378)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT379,1,5) {&Absyn_Direction_BIDIR__desc,}};
#define _OMC_LIT379 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT379)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT380,1,3) {&Absyn_IsField_NONFIELD__desc,}};
#define _OMC_LIT380 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT380)
#define _OMC_LIT381_data "Class %s not found in scope %s while instantiating %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT381,54,_OMC_LIT381_data);
#define _OMC_LIT381 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT381)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT382,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT381}};
#define _OMC_LIT382 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT382)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT383,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(4)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT382}};
#define _OMC_LIT383 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT383)
#define _OMC_LIT384_data "Lookup class failed:"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT384,20,_OMC_LIT384_data);
#define _OMC_LIT384 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT384)
#define _OMC_LIT385_data "- Inst.instElement failed: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT385,27,_OMC_LIT385_data);
#define _OMC_LIT385 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT385)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT386,10,3) {&SCodeDump_SCodeDumpOptions_OPTIONS__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(1)),MMC_IMMEDIATE(MMC_TAGFIXNUM(1)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0))}};
#define _OMC_LIT386 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT386)
#define _OMC_LIT387_data "  Scope: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT387,9,_OMC_LIT387_data);
#define _OMC_LIT387 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT387)
#define _OMC_LIT388_data "Invalid redeclaration of %s, a redeclare may not have a condition attribute."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT388,76,_OMC_LIT388_data);
#define _OMC_LIT388 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT388)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT389,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT388}};
#define _OMC_LIT389 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT389)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT390,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(325)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT389}};
#define _OMC_LIT390 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT390)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT391,1,6) {&DAE_ConnectorType_NON__CONNECTOR__desc,}};
#define _OMC_LIT391 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT391)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT392,7,3) {&DAE_Attributes_ATTR__desc,_OMC_LIT391,_OMC_LIT377,_OMC_LIT378,_OMC_LIT379,_OMC_LIT371,_OMC_LIT368}};
#define _OMC_LIT392 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT392)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT393,1,6) {&FCore_Status_VAR__DELETED__desc,}};
#define _OMC_LIT393 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT393)
#define _OMC_LIT394_data "empty"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT394,5,_OMC_LIT394_data);
#define _OMC_LIT394 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT394)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT395,2,4) {&FCore_Graph_EG__desc,_OMC_LIT394}};
#define _OMC_LIT395 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT395)
#define _OMC_LIT396_data "instElement2"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT396,12,_OMC_LIT396_data);
#define _OMC_LIT396 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT396)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT397,1,7) {&ClassInf_Event_NEWDEF__desc,}};
#define _OMC_LIT397 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT397)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT398,1,1) {MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT398 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT398)
#define _OMC_LIT399_data "Class %s not found in scope %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT399,31,_OMC_LIT399_data);
#define _OMC_LIT399 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT399)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT400,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT399}};
#define _OMC_LIT400 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT400)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT401,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(3)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT400}};
#define _OMC_LIT401 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT401)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT402,3,5) {&Absyn_ComponentRef_CREF__IDENT__desc,_OMC_LIT11,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT402 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT402)
#define _OMC_LIT403_data "instBasictypeBaseclass2"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT403,23,_OMC_LIT403_data);
#define _OMC_LIT403 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT403)
#define _OMC_LIT404_data "Class %s inherits builtin type but has components."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT404,50,_OMC_LIT404_data);
#define _OMC_LIT404 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT404)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT405,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT404}};
#define _OMC_LIT405 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT405)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT406,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(87)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT405}};
#define _OMC_LIT406 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT406)
#define _OMC_LIT407_data "instBasictypeBaseclass"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT407,22,_OMC_LIT407_data);
#define _OMC_LIT407 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT407)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT408,1,3) {&SCode_ConnectorType_POTENTIAL__desc,}};
#define _OMC_LIT408 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT408)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT409,7,3) {&SCode_Attributes_ATTR__desc,MMC_REFSTRUCTLIT(mmc_nil),_OMC_LIT408,_OMC_LIT377,_OMC_LIT378,_OMC_LIT379,_OMC_LIT380}};
#define _OMC_LIT409 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT409)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT410,1,5) {&SCode_Restriction_R__MODEL__desc,}};
#define _OMC_LIT410 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT410)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT411,1,11) {&SCode_Restriction_R__PACKAGE__desc,}};
#define _OMC_LIT411 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT411)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT412,2,6) {&SCode_Restriction_R__RECORD__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT412 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT412)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT413,2,6) {&SCode_Restriction_R__RECORD__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(0))}};
#define _OMC_LIT413 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT413)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT414,4,4) {&DAE_ComponentRef_CREF__IDENT__desc,_OMC_LIT11,_OMC_LIT334,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT414 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT414)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT415,2,0) {_OMC_LIT414,_OMC_LIT414}};
#define _OMC_LIT415 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT415)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT416,1,6) {&ClassInf_Event_FOUND__EXT__DECL__desc,}};
#define _OMC_LIT416 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT416)
#define _OMC_LIT417_data "Uniontype %s has type variables, but they were not given in the declaration."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT417,76,_OMC_LIT417_data);
#define _OMC_LIT417 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT417)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT418,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT417}};
#define _OMC_LIT418 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT418)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT419,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(5044)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT418}};
#define _OMC_LIT419 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT419)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT420,1,4) {&FCore_ScopeType_CLASS__SCOPE__desc,}};
#define _OMC_LIT420 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT420)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT421,1,1) {_OMC_LIT420}};
#define _OMC_LIT421 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT421)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT422,1,13) {&SCode_Restriction_R__ENUMERATION__desc,}};
#define _OMC_LIT422 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT422)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT423,1,18) {&SCode_Restriction_R__PREDEFINED__ENUMERATION__desc,}};
#define _OMC_LIT423 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT423)
#define _OMC_LIT424_data "MetaModelica complex types may not have modifiers."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT424,50,_OMC_LIT424_data);
#define _OMC_LIT424 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT424)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT425,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT424}};
#define _OMC_LIT425 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT425)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT426,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(5006)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT425}};
#define _OMC_LIT426 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT426)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT427,2,22) {&ClassInf_State_META__LIST__desc,_OMC_LIT259}};
#define _OMC_LIT427 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT427)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT428,2,23) {&ClassInf_State_META__OPTION__desc,_OMC_LIT259}};
#define _OMC_LIT428 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT428)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT429,2,21) {&ClassInf_State_META__TUPLE__desc,_OMC_LIT259}};
#define _OMC_LIT429 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT429)
#define _OMC_LIT430_data "%s uses invalid subtypeof syntax. Only subtypeof Any is supported."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT430,66,_OMC_LIT430_data);
#define _OMC_LIT430 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT430)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT431,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT430}};
#define _OMC_LIT431 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT431)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT432,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(5002)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT431}};
#define _OMC_LIT432 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT432)
#define _OMC_LIT433_data "List"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT433,4,_OMC_LIT433_data);
#define _OMC_LIT433 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT433)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT434,2,0) {_OMC_LIT433,_OMC_LIT313}};
#define _OMC_LIT434 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT434)
#define _OMC_LIT435_data "Tuple"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT435,5,_OMC_LIT435_data);
#define _OMC_LIT435 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT435)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT436,2,0) {_OMC_LIT435,_OMC_LIT317}};
#define _OMC_LIT436 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT436)
#define _OMC_LIT437_data "Array"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT437,5,_OMC_LIT437_data);
#define _OMC_LIT437 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT437)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT438,2,0) {_OMC_LIT437,_OMC_LIT321}};
#define _OMC_LIT438 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT438)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT439,2,1) {_OMC_LIT438,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT439 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT439)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT440,2,1) {_OMC_LIT436,_OMC_LIT439}};
#define _OMC_LIT440 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT440)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT441,2,1) {_OMC_LIT434,_OMC_LIT440}};
#define _OMC_LIT441 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT441)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT442,2,1) {_OMC_LIT433,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT442 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT442)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT443,2,1) {_OMC_LIT313,_OMC_LIT442}};
#define _OMC_LIT443 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT443)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT444,2,1) {_OMC_LIT315,_OMC_LIT443}};
#define _OMC_LIT444 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT444)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT445,2,1) {_OMC_LIT437,_OMC_LIT444}};
#define _OMC_LIT445 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT445)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT446,2,1) {_OMC_LIT321,_OMC_LIT445}};
#define _OMC_LIT446 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT446)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT447,2,1) {_OMC_LIT435,_OMC_LIT446}};
#define _OMC_LIT447 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT447)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT448,2,1) {_OMC_LIT317,_OMC_LIT447}};
#define _OMC_LIT448 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT448)
#define _OMC_LIT449_data "Uniontype %s has %s type variables, but got %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT449,47,_OMC_LIT449_data);
#define _OMC_LIT449 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT449)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT450,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT449}};
#define _OMC_LIT450 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT450)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT451,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(5045)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT450}};
#define _OMC_LIT451 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT451)
#define _OMC_LIT452_data "Invalid complex type name: %s"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT452,29,_OMC_LIT452_data);
#define _OMC_LIT452 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT452)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT453,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT452}};
#define _OMC_LIT453 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT453)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT454,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(5020)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT453}};
#define _OMC_LIT454 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT454)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT455,2,0) {_OMC_LIT317,MMC_IMMEDIATE(MMC_TAGFIXNUM(0))}};
#define _OMC_LIT455 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT455)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT456,2,0) {_OMC_LIT321,MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT456 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT456)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT457,2,0) {_OMC_LIT315,MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT457 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT457)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT458,2,0) {_OMC_LIT313,MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT458 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT458)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT459,2,1) {_OMC_LIT458,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT459 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT459)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT460,2,1) {_OMC_LIT457,_OMC_LIT459}};
#define _OMC_LIT460 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT460)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT461,2,1) {_OMC_LIT456,_OMC_LIT460}};
#define _OMC_LIT461 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT461)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT462,2,1) {_OMC_LIT455,_OMC_LIT461}};
#define _OMC_LIT462 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT462)
#define _OMC_LIT463_data "- Inst.instClassdef DERIVED( "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT463,29,_OMC_LIT463_data);
#define _OMC_LIT463 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT463)
#define _OMC_LIT464_data ") lookup failed\n ENV:"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT464,21,_OMC_LIT464_data);
#define _OMC_LIT464 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT464)
#define _OMC_LIT465_data "- Inst.instClassdef failed"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT465,26,_OMC_LIT465_data);
#define _OMC_LIT465 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT465)
#define _OMC_LIT466_data "  class :"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT466,9,_OMC_LIT466_data);
#define _OMC_LIT466 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT466)
#define _OMC_LIT467_data "Any"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT467,3,_OMC_LIT467_data);
#define _OMC_LIT467 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT467)
#define _OMC_LIT468_data "instClassdefBasicType1"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT468,22,_OMC_LIT468_data);
#define _OMC_LIT468 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT468)
#define _OMC_LIT469_data "std"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT469,3,_OMC_LIT469_data);
#define _OMC_LIT469 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT469)
#define _OMC_LIT470_data "1.x"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT470,3,_OMC_LIT470_data);
#define _OMC_LIT470 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT470)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT471,2,0) {_OMC_LIT470,MMC_IMMEDIATE(MMC_TAGFIXNUM(10))}};
#define _OMC_LIT471 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT471)
#define _OMC_LIT472_data "2.x"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT472,3,_OMC_LIT472_data);
#define _OMC_LIT472 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT472)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT473,2,0) {_OMC_LIT472,MMC_IMMEDIATE(MMC_TAGFIXNUM(20))}};
#define _OMC_LIT473 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT473)
#define _OMC_LIT474_data "3.0"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT474,3,_OMC_LIT474_data);
#define _OMC_LIT474 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT474)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT475,2,0) {_OMC_LIT474,MMC_IMMEDIATE(MMC_TAGFIXNUM(30))}};
#define _OMC_LIT475 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT475)
#define _OMC_LIT476_data "3.1"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT476,3,_OMC_LIT476_data);
#define _OMC_LIT476 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT476)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT477,2,0) {_OMC_LIT476,MMC_IMMEDIATE(MMC_TAGFIXNUM(31))}};
#define _OMC_LIT477 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT477)
#define _OMC_LIT478_data "3.2"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT478,3,_OMC_LIT478_data);
#define _OMC_LIT478 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT478)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT479,2,0) {_OMC_LIT478,MMC_IMMEDIATE(MMC_TAGFIXNUM(32))}};
#define _OMC_LIT479 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT479)
#define _OMC_LIT480_data "3.3"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT480,3,_OMC_LIT480_data);
#define _OMC_LIT480 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT480)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT481,2,0) {_OMC_LIT480,MMC_IMMEDIATE(MMC_TAGFIXNUM(33))}};
#define _OMC_LIT481 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT481)
#define _OMC_LIT482_data "3.4"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT482,3,_OMC_LIT482_data);
#define _OMC_LIT482 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT482)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT483,2,0) {_OMC_LIT482,MMC_IMMEDIATE(MMC_TAGFIXNUM(34))}};
#define _OMC_LIT483 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT483)
#define _OMC_LIT484_data "3.5"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT484,3,_OMC_LIT484_data);
#define _OMC_LIT484 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT484)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT485,2,0) {_OMC_LIT484,MMC_IMMEDIATE(MMC_TAGFIXNUM(35))}};
#define _OMC_LIT485 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT485)
#define _OMC_LIT486_data "latest"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT486,6,_OMC_LIT486_data);
#define _OMC_LIT486 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT486)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT487,2,0) {_OMC_LIT486,MMC_IMMEDIATE(MMC_TAGFIXNUM(1000))}};
#define _OMC_LIT487 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT487)
#define _OMC_LIT488_data "experimental"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT488,12,_OMC_LIT488_data);
#define _OMC_LIT488 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT488)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT489,2,0) {_OMC_LIT488,MMC_IMMEDIATE(MMC_TAGFIXNUM(9999))}};
#define _OMC_LIT489 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT489)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT490,2,1) {_OMC_LIT489,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT490 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT490)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT491,2,1) {_OMC_LIT487,_OMC_LIT490}};
#define _OMC_LIT491 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT491)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT492,2,1) {_OMC_LIT485,_OMC_LIT491}};
#define _OMC_LIT492 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT492)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT493,2,1) {_OMC_LIT483,_OMC_LIT492}};
#define _OMC_LIT493 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT493)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT494,2,1) {_OMC_LIT481,_OMC_LIT493}};
#define _OMC_LIT494 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT494)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT495,2,1) {_OMC_LIT479,_OMC_LIT494}};
#define _OMC_LIT495 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT495)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT496,2,1) {_OMC_LIT477,_OMC_LIT495}};
#define _OMC_LIT496 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT496)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT497,2,1) {_OMC_LIT475,_OMC_LIT496}};
#define _OMC_LIT497 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT497)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT498,2,1) {_OMC_LIT473,_OMC_LIT497}};
#define _OMC_LIT498 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT498)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT499,2,1) {_OMC_LIT471,_OMC_LIT498}};
#define _OMC_LIT499 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT499)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT500,3,10) {&Flags_FlagData_ENUM__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1000)),_OMC_LIT499}};
#define _OMC_LIT500 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT500)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT501,2,1) {_OMC_LIT488,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT501 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT501)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT502,2,1) {_OMC_LIT486,_OMC_LIT501}};
#define _OMC_LIT502 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT502)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT503,2,1) {_OMC_LIT484,_OMC_LIT502}};
#define _OMC_LIT503 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT503)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT504,2,1) {_OMC_LIT482,_OMC_LIT503}};
#define _OMC_LIT504 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT504)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT505,2,1) {_OMC_LIT480,_OMC_LIT504}};
#define _OMC_LIT505 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT505)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT506,2,1) {_OMC_LIT478,_OMC_LIT505}};
#define _OMC_LIT506 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT506)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT507,2,1) {_OMC_LIT476,_OMC_LIT506}};
#define _OMC_LIT507 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT507)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT508,2,1) {_OMC_LIT472,_OMC_LIT507}};
#define _OMC_LIT508 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT508)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT509,2,1) {_OMC_LIT470,_OMC_LIT508}};
#define _OMC_LIT509 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT509)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT510,2,3) {&Flags_ValidOptions_STRING__OPTION__desc,_OMC_LIT509}};
#define _OMC_LIT510 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT510)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT511,1,1) {_OMC_LIT510}};
#define _OMC_LIT511 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT511)
#define _OMC_LIT512_data "Sets the language standard that should be used."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT512,47,_OMC_LIT512_data);
#define _OMC_LIT512 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT512)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT513,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT512}};
#define _OMC_LIT513 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT513)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT514,8,3) {&Flags_ConfigFlag_CONFIG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(8)),_OMC_LIT469,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT340,_OMC_LIT500,_OMC_LIT511,_OMC_LIT513}};
#define _OMC_LIT514 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT514)
#define _OMC_LIT515_data "Clock"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT515,5,_OMC_LIT515_data);
#define _OMC_LIT515 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT515)
#define _OMC_LIT516_data "Partial Inst Hit: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT516,18,_OMC_LIT516_data);
#define _OMC_LIT516 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT516)
#define _OMC_LIT517_data "The maximum recursion depth of %s was reached, probably due to mutual recursion. The current scope: %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT517,103,_OMC_LIT517_data);
#define _OMC_LIT517 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT517)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT518,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT517}};
#define _OMC_LIT518 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT518)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT519,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(527)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT518}};
#define _OMC_LIT519 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT519)
#define _OMC_LIT520_data "256"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT520,3,_OMC_LIT520_data);
#define _OMC_LIT520 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT520)
#define _OMC_LIT521_data "Partial Inst Add: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT521,18,_OMC_LIT521_data);
#define _OMC_LIT521 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT521)
#define _OMC_LIT522_data "- Inst.partialInstClassIn failed on class: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT522,43,_OMC_LIT522_data);
#define _OMC_LIT522 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT522)
#define _OMC_LIT523_data " in environment: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT523,17,_OMC_LIT523_data);
#define _OMC_LIT523 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT523)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT524,1,5) {&DAE_Const_C__VAR__desc,}};
#define _OMC_LIT524 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT524)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT525,1,5) {&SCode_Variability_PARAM__desc,}};
#define _OMC_LIT525 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT525)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT526,7,3) {&DAE_Attributes_ATTR__desc,_OMC_LIT391,_OMC_LIT377,_OMC_LIT525,_OMC_LIT379,_OMC_LIT371,_OMC_LIT368}};
#define _OMC_LIT526 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT526)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT527,1,4) {&DAE_Const_C__PARAM__desc,}};
#define _OMC_LIT527 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT527)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT528,1,3) {&DAE_BindingSource_BINDING__FROM__DEFAULT__VALUE__desc,}};
#define _OMC_LIT528 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT528)
#define _OMC_LIT529_data "checkModel"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT529,10,_OMC_LIT529_data);
#define _OMC_LIT529 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT529)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT530,1,3) {&Flags_FlagVisibility_INTERNAL__desc,}};
#define _OMC_LIT530 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT530)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT531,2,4) {&Flags_FlagData_BOOL__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(0))}};
#define _OMC_LIT531 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT531)
#define _OMC_LIT532_data "Set when checkModel is used to turn on specific features for checking."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT532,70,_OMC_LIT532_data);
#define _OMC_LIT532 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT532)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT533,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT532}};
#define _OMC_LIT533 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT533)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT534,8,3) {&Flags_ConfigFlag_CONFIG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(31)),_OMC_LIT529,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT530,_OMC_LIT531,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT533}};
#define _OMC_LIT534 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT534)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT535,1,4) {&Absyn_Msg_NO__MSG__desc,}};
#define _OMC_LIT535 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT535)
#define _OMC_LIT536_data "ctStateMachines"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT536,15,_OMC_LIT536_data);
#define _OMC_LIT536 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT536)
#define _OMC_LIT537_data "Experimental: Enable continuous-time state machine prototype"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT537,60,_OMC_LIT537_data);
#define _OMC_LIT537 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT537)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT538,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT537}};
#define _OMC_LIT538 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT538)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT539,8,3) {&Flags_ConfigFlag_CONFIG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(89)),_OMC_LIT536,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT530,_OMC_LIT531,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT538}};
#define _OMC_LIT539 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT539)
#define _OMC_LIT540_data "Component %s of variability %s has binding %s of higher variability %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT540,71,_OMC_LIT540_data);
#define _OMC_LIT540 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT540)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT541,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT540}};
#define _OMC_LIT541 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT541)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT542,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(130)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT541}};
#define _OMC_LIT542 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT542)
#define _OMC_LIT543_data "PARAM"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT543,5,_OMC_LIT543_data);
#define _OMC_LIT543 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT543)
#define _OMC_LIT544_data "VAR"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT544,3,_OMC_LIT544_data);
#define _OMC_LIT544 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT544)
#define _OMC_LIT545_data "builtin attribute "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT545,18,_OMC_LIT545_data);
#define _OMC_LIT545 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT545)
#define _OMC_LIT546_data " of type "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT546,9,_OMC_LIT546_data);
#define _OMC_LIT546 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT546)
#define _OMC_LIT547_data "Wrong type on %s, expected %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT547,30,_OMC_LIT547_data);
#define _OMC_LIT547 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT547)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT548,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT547}};
#define _OMC_LIT548 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT548)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT549,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(53)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT548}};
#define _OMC_LIT549 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT549)
#define _OMC_LIT550_data "instBuiltinAttribute failed for: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT550,33,_OMC_LIT550_data);
#define _OMC_LIT550 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT550)
#define _OMC_LIT551_data " value binding: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT551,16,_OMC_LIT551_data);
#define _OMC_LIT551 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT551)
#define _OMC_LIT552_data " binding: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT552,10,_OMC_LIT552_data);
#define _OMC_LIT552 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT552)
#define _OMC_LIT553_data " expected type: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT553,16,_OMC_LIT553_data);
#define _OMC_LIT553 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT553)
#define _OMC_LIT554_data " type props: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT554,13,_OMC_LIT554_data);
#define _OMC_LIT554 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT554)
#define _OMC_LIT555_data " value binding: NONE()"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT555,22,_OMC_LIT555_data);
#define _OMC_LIT555 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT555)
#define _OMC_LIT556_data "- Inst.instBasicTypeAttributes2 failed on "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT556,42,_OMC_LIT556_data);
#define _OMC_LIT556 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT556)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT557,2,5) {&DAE_Type_T__STRING__desc,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT557 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT557)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT558,2,6) {&DAE_Type_T__BOOL__desc,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT558 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT558)
#define _OMC_LIT559_data "Modified element %s not found in class %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT559,42,_OMC_LIT559_data);
#define _OMC_LIT559 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT559)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT560,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT559}};
#define _OMC_LIT560 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT560)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT561,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(214)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT560}};
#define _OMC_LIT561 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT561)
#define _OMC_LIT562_data "enumeration(:)"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT562,14,_OMC_LIT562_data);
#define _OMC_LIT562 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT562)
#define _OMC_LIT563_data "quantity"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT563,8,_OMC_LIT563_data);
#define _OMC_LIT563 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT563)
#define _OMC_LIT564_data "start"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT564,5,_OMC_LIT564_data);
#define _OMC_LIT564 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT564)
#define _OMC_LIT565_data "fixed"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT565,5,_OMC_LIT565_data);
#define _OMC_LIT565 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT565)
#define _OMC_LIT566_data "given"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT566,5,_OMC_LIT566_data);
#define _OMC_LIT566 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT566)
#define _OMC_LIT567_data "sought"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT567,6,_OMC_LIT567_data);
#define _OMC_LIT567 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT567)
#define _OMC_LIT568_data "refine"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT568,6,_OMC_LIT568_data);
#define _OMC_LIT568 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT568)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT569,2,1) {_OMC_LIT568,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT569 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT569)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT570,2,1) {_OMC_LIT567,_OMC_LIT569}};
#define _OMC_LIT570 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT570)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT571,2,1) {_OMC_LIT566,_OMC_LIT570}};
#define _OMC_LIT571 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT571)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT572,1,1) {MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT572 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT572)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT573,6,8) {&DAE_Type_T__ENUMERATION__desc,_OMC_LIT572,_OMC_LIT259,_OMC_LIT571,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT573 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT573)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT574,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT566,_OMC_LIT526,_OMC_LIT573,_OMC_LIT262,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT574 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT574)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT575,1,1) {MMC_IMMEDIATE(MMC_TAGFIXNUM(2))}};
#define _OMC_LIT575 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT575)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT576,6,8) {&DAE_Type_T__ENUMERATION__desc,_OMC_LIT575,_OMC_LIT259,_OMC_LIT571,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT576 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT576)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT577,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT567,_OMC_LIT526,_OMC_LIT576,_OMC_LIT262,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT577 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT577)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT578,1,1) {MMC_IMMEDIATE(MMC_TAGFIXNUM(3))}};
#define _OMC_LIT578 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT578)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT579,6,8) {&DAE_Type_T__ENUMERATION__desc,_OMC_LIT578,_OMC_LIT259,_OMC_LIT571,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT579 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT579)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT580,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT568,_OMC_LIT526,_OMC_LIT579,_OMC_LIT262,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT580 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT580)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT581,2,1) {_OMC_LIT580,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT581 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT581)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT582,2,1) {_OMC_LIT577,_OMC_LIT581}};
#define _OMC_LIT582 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT582)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT583,2,1) {_OMC_LIT574,_OMC_LIT582}};
#define _OMC_LIT583 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT583)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT584,6,8) {&DAE_Type_T__ENUMERATION__desc,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT259,_OMC_LIT571,_OMC_LIT583,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT584 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT584)
#define _OMC_LIT585_data "Distribution"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT585,12,_OMC_LIT585_data);
#define _OMC_LIT585 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT585)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT586,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT585}};
#define _OMC_LIT586 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT586)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT587,2,6) {&ClassInf_State_RECORD__desc,_OMC_LIT586}};
#define _OMC_LIT587 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT587)
#define _OMC_LIT588_data "name"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT588,4,_OMC_LIT588_data);
#define _OMC_LIT588 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT588)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT589,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT588,_OMC_LIT526,_OMC_LIT557,_OMC_LIT262,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT589 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT589)
#define _OMC_LIT590_data "params"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT590,6,_OMC_LIT590_data);
#define _OMC_LIT590 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT590)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT591,2,4) {&DAE_Type_T__REAL__desc,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT591 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT591)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT592,1,7) {&DAE_Dimension_DIM__UNKNOWN__desc,}};
#define _OMC_LIT592 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT592)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT593,2,1) {_OMC_LIT592,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT593 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT593)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT594,3,9) {&DAE_Type_T__ARRAY__desc,_OMC_LIT591,_OMC_LIT593}};
#define _OMC_LIT594 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT594)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT595,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT590,_OMC_LIT526,_OMC_LIT594,_OMC_LIT262,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT595 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT595)
#define _OMC_LIT596_data "paramNames"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT596,10,_OMC_LIT596_data);
#define _OMC_LIT596 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT596)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT597,3,9) {&DAE_Type_T__ARRAY__desc,_OMC_LIT557,_OMC_LIT593}};
#define _OMC_LIT597 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT597)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT598,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT596,_OMC_LIT526,_OMC_LIT597,_OMC_LIT262,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT598 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT598)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT599,2,1) {_OMC_LIT598,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT599 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT599)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT600,2,1) {_OMC_LIT595,_OMC_LIT599}};
#define _OMC_LIT600 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT600)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT601,2,1) {_OMC_LIT589,_OMC_LIT600}};
#define _OMC_LIT601 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT601)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT602,4,12) {&DAE_Type_T__COMPLEX__desc,_OMC_LIT587,_OMC_LIT601,MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT602 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT602)
#define _OMC_LIT603_data "nominal"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT603,7,_OMC_LIT603_data);
#define _OMC_LIT603 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT603)
#define _OMC_LIT604_data "uncertain"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT604,9,_OMC_LIT604_data);
#define _OMC_LIT604 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT604)
#define _OMC_LIT605_data "distribution"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT605,12,_OMC_LIT605_data);
#define _OMC_LIT605 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT605)
#define _OMC_LIT606_data "never"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT606,5,_OMC_LIT606_data);
#define _OMC_LIT606 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT606)
#define _OMC_LIT607_data "avoid"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT607,5,_OMC_LIT607_data);
#define _OMC_LIT607 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT607)
#define _OMC_LIT608_data "default"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT608,7,_OMC_LIT608_data);
#define _OMC_LIT608 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT608)
#define _OMC_LIT609_data "prefer"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT609,6,_OMC_LIT609_data);
#define _OMC_LIT609 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT609)
#define _OMC_LIT610_data "always"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT610,6,_OMC_LIT610_data);
#define _OMC_LIT610 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT610)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT611,2,1) {_OMC_LIT610,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT611 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT611)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT612,2,1) {_OMC_LIT609,_OMC_LIT611}};
#define _OMC_LIT612 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT612)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT613,2,1) {_OMC_LIT608,_OMC_LIT612}};
#define _OMC_LIT613 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT613)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT614,2,1) {_OMC_LIT607,_OMC_LIT613}};
#define _OMC_LIT614 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT614)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT615,2,1) {_OMC_LIT606,_OMC_LIT614}};
#define _OMC_LIT615 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT615)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT616,6,8) {&DAE_Type_T__ENUMERATION__desc,_OMC_LIT572,_OMC_LIT259,_OMC_LIT615,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT616 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT616)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT617,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT606,_OMC_LIT526,_OMC_LIT616,_OMC_LIT262,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT617 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT617)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT618,6,8) {&DAE_Type_T__ENUMERATION__desc,_OMC_LIT575,_OMC_LIT259,_OMC_LIT615,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT618 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT618)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT619,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT607,_OMC_LIT526,_OMC_LIT618,_OMC_LIT262,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT619 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT619)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT620,6,8) {&DAE_Type_T__ENUMERATION__desc,_OMC_LIT578,_OMC_LIT259,_OMC_LIT615,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT620 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT620)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT621,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT608,_OMC_LIT526,_OMC_LIT620,_OMC_LIT262,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT621 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT621)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT622,1,1) {MMC_IMMEDIATE(MMC_TAGFIXNUM(4))}};
#define _OMC_LIT622 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT622)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT623,6,8) {&DAE_Type_T__ENUMERATION__desc,_OMC_LIT622,_OMC_LIT259,_OMC_LIT615,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT623 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT623)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT624,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT609,_OMC_LIT526,_OMC_LIT623,_OMC_LIT262,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT624 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT624)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT625,1,1) {MMC_IMMEDIATE(MMC_TAGFIXNUM(5))}};
#define _OMC_LIT625 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT625)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT626,6,8) {&DAE_Type_T__ENUMERATION__desc,_OMC_LIT625,_OMC_LIT259,_OMC_LIT615,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT626 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT626)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT627,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT610,_OMC_LIT526,_OMC_LIT626,_OMC_LIT262,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT627 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT627)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT628,2,1) {_OMC_LIT627,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT628 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT628)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT629,2,1) {_OMC_LIT624,_OMC_LIT628}};
#define _OMC_LIT629 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT629)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT630,2,1) {_OMC_LIT621,_OMC_LIT629}};
#define _OMC_LIT630 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT630)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT631,2,1) {_OMC_LIT619,_OMC_LIT630}};
#define _OMC_LIT631 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT631)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT632,2,1) {_OMC_LIT617,_OMC_LIT631}};
#define _OMC_LIT632 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT632)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT633,6,8) {&DAE_Type_T__ENUMERATION__desc,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT259,_OMC_LIT615,_OMC_LIT632,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT633 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT633)
#define _OMC_LIT634_data "unit"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT634,4,_OMC_LIT634_data);
#define _OMC_LIT634 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT634)
#define _OMC_LIT635_data "displayUnit"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT635,11,_OMC_LIT635_data);
#define _OMC_LIT635 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT635)
#define _OMC_LIT636_data "stateSelect"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT636,11,_OMC_LIT636_data);
#define _OMC_LIT636 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT636)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT637,2,3) {&DAE_Type_T__INTEGER__desc,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT637 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT637)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT638,2,7) {&DAE_Type_T__CLOCK__desc,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT638 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT638)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT639,6,8) {&DAE_Type_T__ENUMERATION__desc,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT259,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT639 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT639)
#define _OMC_LIT640_data "instClassParts"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT640,14,_OMC_LIT640_data);
#define _OMC_LIT640 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT640)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT641,1,6) {&DAE_BindingSource_BINDING__FROM__DERIVED__RECORD__DECL__desc,}};
#define _OMC_LIT641 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT641)
#define _OMC_LIT642_data "Internal error %s"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT642,17,_OMC_LIT642_data);
#define _OMC_LIT642 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT642)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT643,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT642}};
#define _OMC_LIT643 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT643)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT644,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(63)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT643}};
#define _OMC_LIT644 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT644)
#define _OMC_LIT645_data "Unexpected Mod structure in collectAndFixDerivedComplexOutsideBindings."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT645,71,_OMC_LIT645_data);
#define _OMC_LIT645 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT645)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT646,2,1) {_OMC_LIT645,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT646 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT646)
#define _OMC_LIT647_data "Full Inst Hit: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT647,15,_OMC_LIT647_data);
#define _OMC_LIT647 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT647)
#define _OMC_LIT648_data "Full Inst Add: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT648,15,_OMC_LIT648_data);
#define _OMC_LIT648 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT648)
#define _OMC_LIT649_data "- Inst.instClassIn2 failed on class: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT649,37,_OMC_LIT649_data);
#define _OMC_LIT649 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT649)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT650,1,5) {&ErrorTypes_Severity_WARNING__desc,}};
#define _OMC_LIT650 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT650)
#define _OMC_LIT651_data "No corresponding 'inner' declaration found for class %s declared as '%s'.\n Continuing flattening by only considering the 'outer' class declaration."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT651,147,_OMC_LIT651_data);
#define _OMC_LIT651 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT651)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT652,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT651}};
#define _OMC_LIT652 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT652)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT653,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(532)),_OMC_LIT0,_OMC_LIT650,_OMC_LIT652}};
#define _OMC_LIT653 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT653)
#define _OMC_LIT654_data "Forcing full instantiation of partial class %s during checkModel."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT654,65,_OMC_LIT654_data);
#define _OMC_LIT654 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT654)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT655,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT654}};
#define _OMC_LIT655 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT655)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT656,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(134)),_OMC_LIT0,_OMC_LIT650,_OMC_LIT655}};
#define _OMC_LIT656 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT656)
#define _OMC_LIT657_data "Illegal to instantiate partial class %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT657,40,_OMC_LIT657_data);
#define _OMC_LIT657 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT657)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT658,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT657}};
#define _OMC_LIT658 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT658)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT659,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(38)),_OMC_LIT0,_OMC_LIT1,_OMC_LIT658}};
#define _OMC_LIT659 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT659)
#define _OMC_LIT660_data "- Inst.instClass: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT660,18,_OMC_LIT660_data);
#define _OMC_LIT660 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT660)
#define _OMC_LIT661_data " in env: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT661,9,_OMC_LIT661_data);
#define _OMC_LIT661 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT661)
#define _OMC_LIT662_data " failed\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT662,8,_OMC_LIT662_data);
#define _OMC_LIT662 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT662)
#define _OMC_LIT663_data "Inst.instClassInProgram failed\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT663,31,_OMC_LIT663_data);
#define _OMC_LIT663 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT663)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT664,1,4) {&DAE_ComponentPrefix_NOCOMPPRE__desc,}};
#define _OMC_LIT664 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT664)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT665,8,3) {&DAE_ElementSource_SOURCE__desc,_OMC_LIT269,MMC_REFSTRUCTLIT(mmc_nil),_OMC_LIT664,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT665 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT665)
#define _OMC_LIT666_data ". The compiler got into Stack Overflow!"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT666,39,_OMC_LIT666_data);
#define _OMC_LIT666 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT666)
#define _OMC_LIT667_data "FrontEnd - scodeFlatten"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT667,23,_OMC_LIT667_data);
#define _OMC_LIT667 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT667)
#define _OMC_LIT668_data "GC stats after pre-frontend work (building graphs):"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT668,51,_OMC_LIT668_data);
#define _OMC_LIT668 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT668)
#define _OMC_LIT669_data "\n  "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT669,3,_OMC_LIT669_data);
#define _OMC_LIT669 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT669)
#define _OMC_LIT670_data "gcProfiling"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT670,11,_OMC_LIT670_data);
#define _OMC_LIT670 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT670)
#define _OMC_LIT671_data "Prints garbage collection stats to standard output."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT671,51,_OMC_LIT671_data);
#define _OMC_LIT671 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT671)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT672,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT671}};
#define _OMC_LIT672 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT672)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT673,5,3) {&Flags_DebugFlag_DEBUG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(13)),_OMC_LIT670,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),_OMC_LIT672}};
#define _OMC_LIT673 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT673)
#define _OMC_LIT674_data "FrontEnd - mkProgramGraph"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT674,25,_OMC_LIT674_data);
#define _OMC_LIT674 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT674)
#include "util/modelica.h"
#include "Inst_includes.h"
#if !defined(PROTECTED_FUNCTION_STATIC)
#define PROTECTED_FUNCTION_STATIC
#endif
PROTECTED_FUNCTION_STATIC void omc_Inst_checkInstanceRestriction(threadData_t *threadData, modelica_metatype _cdef, modelica_metatype _path, modelica_boolean _relaxedFrontEnd);
PROTECTED_FUNCTION_STATIC void boxptr_Inst_checkInstanceRestriction(threadData_t *threadData, modelica_metatype _cdef, modelica_metatype _path, modelica_metatype _relaxedFrontEnd);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_checkInstanceRestriction,2,0) {(void*) boxptr_Inst_checkInstanceRestriction,0}};
#define boxvar_Inst_checkInstanceRestriction MMC_REFSTRUCTLIT(boxvar_lit_Inst_checkInstanceRestriction)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instFunctionAnnotations(threadData_t *threadData, modelica_metatype _comments, modelica_metatype _state);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_instFunctionAnnotations,2,0) {(void*) boxptr_Inst_instFunctionAnnotations,0}};
#define boxvar_Inst_instFunctionAnnotations MMC_REFSTRUCTLIT(boxvar_lit_Inst_instFunctionAnnotations)
PROTECTED_FUNCTION_STATIC void omc_Inst_showCacheInfo(threadData_t *threadData, modelica_string _inMsg, modelica_metatype _inPath);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_showCacheInfo,2,0) {(void*) boxptr_Inst_showCacheInfo,0}};
#define boxvar_Inst_showCacheInfo MMC_REFSTRUCTLIT(boxvar_lit_Inst_showCacheInfo)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_generateCachePath(threadData_t *threadData, modelica_metatype _env, modelica_metatype _cls, modelica_metatype _prefix, modelica_metatype _callScope);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_generateCachePath,2,0) {(void*) boxptr_Inst_generateCachePath,0}};
#define boxvar_Inst_generateCachePath MMC_REFSTRUCTLIT(boxvar_lit_Inst_generateCachePath)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_makeFullyQualified2Builtin(threadData_t *threadData, modelica_string _ident, modelica_metatype _cachedPath);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_makeFullyQualified2Builtin,2,0) {(void*) boxptr_Inst_makeFullyQualified2Builtin,0}};
#define boxvar_Inst_makeFullyQualified2Builtin MMC_REFSTRUCTLIT(boxvar_lit_Inst_makeFullyQualified2Builtin)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_makeFullyQualified2(threadData_t *threadData, modelica_metatype _env, modelica_string _name, modelica_metatype _cachedPath);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_makeFullyQualified2,2,0) {(void*) boxptr_Inst_makeFullyQualified2,0}};
#define boxvar_Inst_makeFullyQualified2 MMC_REFSTRUCTLIT(boxvar_lit_Inst_makeFullyQualified2)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_updateComponentsInEnv2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _pre, modelica_metatype _mod, modelica_metatype _crefs, modelica_metatype _ci_state, modelica_boolean _impl, modelica_metatype _inUpdatedComps, modelica_metatype _currentCref, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUpdatedComps);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_updateComponentsInEnv2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _pre, modelica_metatype _mod, modelica_metatype _crefs, modelica_metatype _ci_state, modelica_metatype _impl, modelica_metatype _inUpdatedComps, modelica_metatype _currentCref, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUpdatedComps);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_updateComponentsInEnv2,2,0) {(void*) boxptr_Inst_updateComponentsInEnv2,0}};
#define boxvar_Inst_updateComponentsInEnv2 MMC_REFSTRUCTLIT(boxvar_lit_Inst_updateComponentsInEnv2)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_removeSelfReferenceAndUpdate(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inRefs, modelica_metatype _inRef, modelica_metatype _inPath, modelica_metatype _inState, modelica_metatype _iattr, modelica_metatype _inPrefixes, modelica_boolean _impl, modelica_metatype _inInstDims, modelica_metatype _pre, modelica_metatype _mods, modelica_metatype _scodeMod, modelica_metatype _info, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_o1);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_removeSelfReferenceAndUpdate(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inRefs, modelica_metatype _inRef, modelica_metatype _inPath, modelica_metatype _inState, modelica_metatype _iattr, modelica_metatype _inPrefixes, modelica_metatype _impl, modelica_metatype _inInstDims, modelica_metatype _pre, modelica_metatype _mods, modelica_metatype _scodeMod, modelica_metatype _info, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_o1);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_removeSelfReferenceAndUpdate,2,0) {(void*) boxptr_Inst_removeSelfReferenceAndUpdate,0}};
#define boxvar_Inst_removeSelfReferenceAndUpdate MMC_REFSTRUCTLIT(boxvar_lit_Inst_removeSelfReferenceAndUpdate)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_modifyInstantiateClass(threadData_t *threadData, modelica_metatype _inMod, modelica_metatype _path, modelica_metatype *out_omod2);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_modifyInstantiateClass,2,0) {(void*) boxptr_Inst_modifyInstantiateClass,0}};
#define boxvar_Inst_modifyInstantiateClass MMC_REFSTRUCTLIT(boxvar_lit_Inst_modifyInstantiateClass)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instBoschClassInProgram(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inProgram, modelica_metatype _inPath, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDae);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_instBoschClassInProgram,2,0) {(void*) boxptr_Inst_instBoschClassInProgram,0}};
#define boxvar_Inst_instBoschClassInProgram MMC_REFSTRUCTLIT(boxvar_lit_Inst_instBoschClassInProgram)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_insertClassAttribute(threadData_t *threadData, modelica_metatype _inAttrs, modelica_string _attrName, modelica_metatype _inAttrExp);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_insertClassAttribute,2,0) {(void*) boxptr_Inst_insertClassAttribute,0}};
#define boxvar_Inst_insertClassAttribute MMC_REFSTRUCTLIT(boxvar_lit_Inst_insertClassAttribute)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instClassAttributes2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inPrefix, modelica_metatype _inAttrs, modelica_boolean _inImplicit, modelica_metatype _inInfo, modelica_metatype _inClsAttrs, modelica_metatype *out_outEnv, modelica_metatype *out_outDae);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instClassAttributes2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inPrefix, modelica_metatype _inAttrs, modelica_metatype _inImplicit, modelica_metatype _inInfo, modelica_metatype _inClsAttrs, modelica_metatype *out_outEnv, modelica_metatype *out_outDae);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_instClassAttributes2,2,0) {(void*) boxptr_Inst_instClassAttributes2,0}};
#define boxvar_Inst_instClassAttributes2 MMC_REFSTRUCTLIT(boxvar_lit_Inst_instClassAttributes2)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instClassAttributes(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inPrefix, modelica_metatype _inAttrs, modelica_boolean _inImplicit, modelica_metatype _inInfo, modelica_metatype *out_outEnv, modelica_metatype *out_outDae);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instClassAttributes(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inPrefix, modelica_metatype _inAttrs, modelica_metatype _inImplicit, modelica_metatype _inInfo, modelica_metatype *out_outEnv, modelica_metatype *out_outDae);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_instClassAttributes,2,0) {(void*) boxptr_Inst_instClassAttributes,0}};
#define boxvar_Inst_instClassAttributes MMC_REFSTRUCTLIT(boxvar_lit_Inst_instClassAttributes)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instConstraints(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inConstraints, modelica_boolean _inImpl, modelica_metatype *out_outEnv, modelica_metatype *out_outDae, modelica_metatype *out_outState);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instConstraints(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inConstraints, modelica_metatype _inImpl, modelica_metatype *out_outEnv, modelica_metatype *out_outDae, modelica_metatype *out_outState);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_instConstraints,2,0) {(void*) boxptr_Inst_instConstraints,0}};
#define boxvar_Inst_instConstraints MMC_REFSTRUCTLIT(boxvar_lit_Inst_instConstraints)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_makeFullyQualifiedIdentCheckBuiltin(threadData_t *threadData, modelica_string _ident, modelica_boolean *out_isKnownBuiltin);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_makeFullyQualifiedIdentCheckBuiltin(threadData_t *threadData, modelica_metatype _ident, modelica_metatype *out_isKnownBuiltin);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_makeFullyQualifiedIdentCheckBuiltin,2,0) {(void*) boxptr_Inst_makeFullyQualifiedIdentCheckBuiltin,0}};
#define boxvar_Inst_makeFullyQualifiedIdentCheckBuiltin MMC_REFSTRUCTLIT(boxvar_lit_Inst_makeFullyQualifiedIdentCheckBuiltin)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_makeFullyQualifiedFromQual(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _inEnv, modelica_metatype __omcQ_24in_5Fpath, modelica_metatype *out_path);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_makeFullyQualifiedFromQual,2,0) {(void*) boxptr_Inst_makeFullyQualifiedFromQual,0}};
#define boxvar_Inst_makeFullyQualifiedFromQual MMC_REFSTRUCTLIT(boxvar_lit_Inst_makeFullyQualifiedFromQual)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_updateComponentInEnv3(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inMod, modelica_boolean _inImpl, modelica_metatype _inModScope, modelica_metatype _inInfo, modelica_metatype *out_outMod);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_updateComponentInEnv3(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inMod, modelica_metatype _inImpl, modelica_metatype _inModScope, modelica_metatype _inInfo, modelica_metatype *out_outMod);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_updateComponentInEnv3,2,0) {(void*) boxptr_Inst_updateComponentInEnv3,0}};
#define boxvar_Inst_updateComponentInEnv3 MMC_REFSTRUCTLIT(boxvar_lit_Inst_updateComponentInEnv3)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_updateComponentInEnv2__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inClsEnv, modelica_metatype _inIH, modelica_metatype _inPrefix, modelica_metatype _inPath, modelica_string _inName, modelica_metatype _inSubscripts, modelica_metatype _inClass, modelica_metatype _inAttr, modelica_metatype _inPrefixes, modelica_metatype _inDAttr, modelica_metatype _inInfo, modelica_metatype _inSMod, modelica_metatype _inClsMod, modelica_metatype _inMod, modelica_metatype _inCref, modelica_metatype _inState, modelica_boolean _inImpl, modelica_metatype _inUpdatedComps, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUpdatedComps);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_updateComponentInEnv2__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inClsEnv, modelica_metatype _inIH, modelica_metatype _inPrefix, modelica_metatype _inPath, modelica_metatype _inName, modelica_metatype _inSubscripts, modelica_metatype _inClass, modelica_metatype _inAttr, modelica_metatype _inPrefixes, modelica_metatype _inDAttr, modelica_metatype _inInfo, modelica_metatype _inSMod, modelica_metatype _inClsMod, modelica_metatype _inMod, modelica_metatype _inCref, modelica_metatype _inState, modelica_metatype _inImpl, modelica_metatype _inUpdatedComps, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUpdatedComps);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_updateComponentInEnv2__dispatch,2,0) {(void*) boxptr_Inst_updateComponentInEnv2__dispatch,0}};
#define boxvar_Inst_updateComponentInEnv2__dispatch MMC_REFSTRUCTLIT(boxvar_lit_Inst_updateComponentInEnv2__dispatch)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_updateComponentInEnv2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _cenv, modelica_metatype _inIH, modelica_metatype _pre, modelica_metatype _path, modelica_string _name, modelica_metatype _ad, modelica_metatype _cl, modelica_metatype _attr, modelica_metatype _inPrefixes, modelica_metatype _dattr, modelica_metatype _info, modelica_metatype _m, modelica_metatype _cmod, modelica_metatype _mod, modelica_metatype _cref, modelica_metatype _ci_state, modelica_boolean _impl, modelica_metatype _inUpdatedComps, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUpdatedComps);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_updateComponentInEnv2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _cenv, modelica_metatype _inIH, modelica_metatype _pre, modelica_metatype _path, modelica_metatype _name, modelica_metatype _ad, modelica_metatype _cl, modelica_metatype _attr, modelica_metatype _inPrefixes, modelica_metatype _dattr, modelica_metatype _info, modelica_metatype _m, modelica_metatype _cmod, modelica_metatype _mod, modelica_metatype _cref, modelica_metatype _ci_state, modelica_metatype _impl, modelica_metatype _inUpdatedComps, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUpdatedComps);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_updateComponentInEnv2,2,0) {(void*) boxptr_Inst_updateComponentInEnv2,0}};
#define boxvar_Inst_updateComponentInEnv2 MMC_REFSTRUCTLIT(boxvar_lit_Inst_updateComponentInEnv2)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_updateComponentInEnv(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _pre, modelica_metatype _mod, modelica_metatype _cref, modelica_metatype _inCIState, modelica_boolean _impl, modelica_metatype _inUpdatedComps, modelica_metatype _currentCref, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUpdatedComps);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_updateComponentInEnv(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _pre, modelica_metatype _mod, modelica_metatype _cref, modelica_metatype _inCIState, modelica_metatype _impl, modelica_metatype _inUpdatedComps, modelica_metatype _currentCref, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUpdatedComps);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_updateComponentInEnv,2,0) {(void*) boxptr_Inst_updateComponentInEnv,0}};
#define boxvar_Inst_updateComponentInEnv MMC_REFSTRUCTLIT(boxvar_lit_Inst_updateComponentInEnv)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getUpdatedCompsHashTable(threadData_t *threadData, modelica_metatype _optHT);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_getUpdatedCompsHashTable,2,0) {(void*) boxptr_Inst_getUpdatedCompsHashTable,0}};
#define boxvar_Inst_getUpdatedCompsHashTable MMC_REFSTRUCTLIT(boxvar_lit_Inst_getUpdatedCompsHashTable)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_updateComponentsInEnv(threadData_t *threadData, modelica_metatype _cache, modelica_metatype _env, modelica_metatype _inIH, modelica_metatype _pre, modelica_metatype _mod, modelica_metatype _crefs, modelica_metatype _ci_state, modelica_boolean _impl, modelica_metatype *out_outEnv, modelica_metatype *out_outIH);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_updateComponentsInEnv(threadData_t *threadData, modelica_metatype _cache, modelica_metatype _env, modelica_metatype _inIH, modelica_metatype _pre, modelica_metatype _mod, modelica_metatype _crefs, modelica_metatype _ci_state, modelica_metatype _impl, modelica_metatype *out_outEnv, modelica_metatype *out_outIH);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_updateComponentsInEnv,2,0) {(void*) boxptr_Inst_updateComponentsInEnv,0}};
#define boxvar_Inst_updateComponentsInEnv MMC_REFSTRUCTLIT(boxvar_lit_Inst_updateComponentsInEnv)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_propagateRedeclCompAttr(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inOldComponent, modelica_metatype _inNewComponent, modelica_metatype *out_outComponent);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_propagateRedeclCompAttr,2,0) {(void*) boxptr_Inst_propagateRedeclCompAttr,0}};
#define boxvar_Inst_propagateRedeclCompAttr MMC_REFSTRUCTLIT(boxvar_lit_Inst_propagateRedeclCompAttr)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_updateCompeltsMods__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inPrefix, modelica_metatype _inComponents, modelica_metatype _inState, modelica_boolean _inImplicit, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outComponents);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_updateCompeltsMods__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inPrefix, modelica_metatype _inComponents, modelica_metatype _inState, modelica_metatype _inImplicit, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outComponents);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_updateCompeltsMods__dispatch,2,0) {(void*) boxptr_Inst_updateCompeltsMods__dispatch,0}};
#define boxvar_Inst_updateCompeltsMods__dispatch MMC_REFSTRUCTLIT(boxvar_lit_Inst_updateCompeltsMods__dispatch)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_updateCompeltsMods(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inPrefix, modelica_metatype _inComponents, modelica_metatype _inState, modelica_boolean _inImplicit, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outComponents);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_updateCompeltsMods(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inPrefix, modelica_metatype _inComponents, modelica_metatype _inState, modelica_metatype _inImplicit, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outComponents);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_updateCompeltsMods,2,0) {(void*) boxptr_Inst_updateCompeltsMods,0}};
#define boxvar_Inst_updateCompeltsMods MMC_REFSTRUCTLIT(boxvar_lit_Inst_updateCompeltsMods)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_removePrefixFromBinding(threadData_t *threadData, modelica_metatype _inBind, modelica_metatype _inPrefix);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_removePrefixFromBinding,2,0) {(void*) boxptr_Inst_removePrefixFromBinding,0}};
#define boxvar_Inst_removePrefixFromBinding MMC_REFSTRUCTLIT(boxvar_lit_Inst_removePrefixFromBinding)
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Inst_isDeletedComponent(threadData_t *threadData, modelica_metatype _element, modelica_metatype _prefix, modelica_boolean _stopOnError, modelica_metatype __omcQ_24in_5Fenv, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype *out_env, modelica_metatype *out_cache);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_isDeletedComponent(threadData_t *threadData, modelica_metatype _element, modelica_metatype _prefix, modelica_metatype _stopOnError, modelica_metatype __omcQ_24in_5Fenv, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype *out_env, modelica_metatype *out_cache);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_isDeletedComponent,2,0) {(void*) boxptr_Inst_isDeletedComponent,0}};
#define boxvar_Inst_isDeletedComponent MMC_REFSTRUCTLIT(boxvar_lit_Inst_isDeletedComponent)
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Inst_getSortedElementOrdering__comp(threadData_t *threadData, modelica_metatype _inElement1, modelica_metatype _inElement2);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_getSortedElementOrdering__comp(threadData_t *threadData, modelica_metatype _inElement1, modelica_metatype _inElement2);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_getSortedElementOrdering__comp,2,0) {(void*) boxptr_Inst_getSortedElementOrdering__comp,0}};
#define boxvar_Inst_getSortedElementOrdering__comp MMC_REFSTRUCTLIT(boxvar_lit_Inst_getSortedElementOrdering__comp)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getSortedElementOrdering(threadData_t *threadData, modelica_metatype _inElements, modelica_metatype _inSortedElements);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_getSortedElementOrdering,2,0) {(void*) boxptr_Inst_getSortedElementOrdering,0}};
#define boxvar_Inst_getSortedElementOrdering MMC_REFSTRUCTLIT(boxvar_lit_Inst_getSortedElementOrdering)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_partialInstClassdef(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inClass, modelica_metatype _inClassDef, modelica_metatype _inVisibility, modelica_metatype _inInstDims, modelica_integer _numIter, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outState, modelica_metatype *out_outVars);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_partialInstClassdef(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inClass, modelica_metatype _inClassDef, modelica_metatype _inVisibility, modelica_metatype _inInstDims, modelica_metatype _numIter, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outState, modelica_metatype *out_outVars);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_partialInstClassdef,2,0) {(void*) boxptr_Inst_partialInstClassdef,0}};
#define boxvar_Inst_partialInstClassdef MMC_REFSTRUCTLIT(boxvar_lit_Inst_partialInstClassdef)
PROTECTED_FUNCTION_STATIC void omc_Inst_instBasictypeBaseclass2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv1, modelica_metatype _inIH, modelica_metatype _store, modelica_metatype _inSCodeElementLst2, modelica_metatype _inSCodeElementLst3, modelica_metatype _inMod4, modelica_metatype _inInstDims5, modelica_string _className, modelica_metatype _inInfo, modelica_metatype _stopInst);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_instBasictypeBaseclass2,2,0) {(void*) boxptr_Inst_instBasictypeBaseclass2,0}};
#define boxvar_Inst_instBasictypeBaseclass2 MMC_REFSTRUCTLIT(boxvar_lit_Inst_instBasictypeBaseclass2)
PROTECTED_FUNCTION_STATIC void omc_Inst_rollbackCheck(threadData_t *threadData, modelica_metatype _p);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_rollbackCheck,2,0) {(void*) boxptr_Inst_rollbackCheck,0}};
#define boxvar_Inst_rollbackCheck MMC_REFSTRUCTLIT(boxvar_lit_Inst_rollbackCheck)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instBasictypeBaseclass(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inSCodeElementLst2, modelica_metatype _inSCodeElementLst3, modelica_metatype _inMod4, modelica_metatype _inInstDims5, modelica_string _className, modelica_metatype _info, modelica_metatype _stopInst, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outTypesTypeOption, modelica_metatype *out_outTypeVars);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_instBasictypeBaseclass,2,0) {(void*) boxptr_Inst_instBasictypeBaseclass,0}};
#define boxvar_Inst_instBasictypeBaseclass MMC_REFSTRUCTLIT(boxvar_lit_Inst_instBasictypeBaseclass)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instClassDefHelper(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inSpecs, modelica_metatype _inPre, modelica_metatype _inInstDims, modelica_boolean _inImpl, modelica_metatype _accTypes, modelica_metatype _inSets, modelica_metatype _inInfo, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outType, modelica_metatype *out_outSets, modelica_metatype *out_outAttr);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instClassDefHelper(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inSpecs, modelica_metatype _inPre, modelica_metatype _inInstDims, modelica_metatype _inImpl, modelica_metatype _accTypes, modelica_metatype _inSets, modelica_metatype _inInfo, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outType, modelica_metatype *out_outSets, modelica_metatype *out_outAttr);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_instClassDefHelper,2,0) {(void*) boxptr_Inst_instClassDefHelper,0}};
#define boxvar_Inst_instClassDefHelper MMC_REFSTRUCTLIT(boxvar_lit_Inst_instClassDefHelper)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_joinExtAlgorithms(threadData_t *threadData, modelica_metatype _inAlg, modelica_metatype _inExtAlg, modelica_metatype _inCallingScope);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_joinExtAlgorithms,2,0) {(void*) boxptr_Inst_joinExtAlgorithms,0}};
#define boxvar_Inst_joinExtAlgorithms MMC_REFSTRUCTLIT(boxvar_lit_Inst_joinExtAlgorithms)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_joinExtEquations(threadData_t *threadData, modelica_metatype _inEq, modelica_metatype _inExtEq, modelica_metatype _inCallingScope);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_joinExtEquations,2,0) {(void*) boxptr_Inst_joinExtEquations,0}};
#define boxvar_Inst_joinExtEquations MMC_REFSTRUCTLIT(boxvar_lit_Inst_joinExtEquations)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instClassdef2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod2, modelica_metatype _inPrefix3, modelica_metatype _inState5, modelica_string _className, modelica_metatype _inClassDef6, modelica_metatype _inRestriction7, modelica_metatype _inVisibility, modelica_metatype _inPartialPrefix, modelica_metatype _inEncapsulatedPrefix, modelica_metatype _inInstDims9, modelica_boolean _inImplicit, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype _instSingleCref, modelica_metatype _comment, modelica_metatype _info, modelica_metatype _stopInst, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outTypesVarLst, modelica_metatype *out_oty, modelica_metatype *out_optDerAttr, modelica_metatype *out_outEqualityConstraint, modelica_metatype *out_outGraph);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instClassdef2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod2, modelica_metatype _inPrefix3, modelica_metatype _inState5, modelica_metatype _className, modelica_metatype _inClassDef6, modelica_metatype _inRestriction7, modelica_metatype _inVisibility, modelica_metatype _inPartialPrefix, modelica_metatype _inEncapsulatedPrefix, modelica_metatype _inInstDims9, modelica_metatype _inImplicit, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype _instSingleCref, modelica_metatype _comment, modelica_metatype _info, modelica_metatype _stopInst, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outTypesVarLst, modelica_metatype *out_oty, modelica_metatype *out_optDerAttr, modelica_metatype *out_outEqualityConstraint, modelica_metatype *out_outGraph);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_instClassdef2,2,0) {(void*) boxptr_Inst_instClassdef2,0}};
#define boxvar_Inst_instClassdef2 MMC_REFSTRUCTLIT(boxvar_lit_Inst_instClassdef2)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instClassdefBasicType(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod2, modelica_metatype _inPrefix3, modelica_metatype _inState5, modelica_string _className, modelica_metatype _inClassDef6, modelica_metatype _inRestriction7, modelica_metatype _inVisibility, modelica_metatype _inInstDims9, modelica_boolean _inImplicit, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype _instSingleCref, modelica_metatype _info, modelica_metatype _stopInst, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outTypesVarLst, modelica_metatype *out_outTypesTypeOption, modelica_metatype *out_optDerAttr, modelica_metatype *out_outEqualityConstraint, modelica_metatype *out_outGraph);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instClassdefBasicType(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod2, modelica_metatype _inPrefix3, modelica_metatype _inState5, modelica_metatype _className, modelica_metatype _inClassDef6, modelica_metatype _inRestriction7, modelica_metatype _inVisibility, modelica_metatype _inInstDims9, modelica_metatype _inImplicit, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype _instSingleCref, modelica_metatype _info, modelica_metatype _stopInst, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outTypesVarLst, modelica_metatype *out_outTypesTypeOption, modelica_metatype *out_optDerAttr, modelica_metatype *out_outEqualityConstraint, modelica_metatype *out_outGraph);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_instClassdefBasicType,2,0) {(void*) boxptr_Inst_instClassdefBasicType,0}};
#define boxvar_Inst_instClassdefBasicType MMC_REFSTRUCTLIT(boxvar_lit_Inst_instClassdefBasicType)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_partialInstClassIn__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inClass, modelica_metatype _inVisibility, modelica_metatype _inInstDims, modelica_boolean _partialInst, modelica_integer _numIter, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outState, modelica_metatype *out_outVars);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_partialInstClassIn__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inClass, modelica_metatype _inVisibility, modelica_metatype _inInstDims, modelica_metatype _partialInst, modelica_metatype _numIter, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outState, modelica_metatype *out_outVars);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_partialInstClassIn__dispatch,2,0) {(void*) boxptr_Inst_partialInstClassIn__dispatch,0}};
#define boxvar_Inst_partialInstClassIn__dispatch MMC_REFSTRUCTLIT(boxvar_lit_Inst_partialInstClassIn__dispatch)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_arrayBasictypeBaseclass(threadData_t *threadData, modelica_metatype _inInstDims, modelica_metatype _inType);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_arrayBasictypeBaseclass,2,0) {(void*) boxptr_Inst_arrayBasictypeBaseclass,0}};
#define boxvar_Inst_arrayBasictypeBaseclass MMC_REFSTRUCTLIT(boxvar_lit_Inst_arrayBasictypeBaseclass)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instBuiltinAttribute(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_string _id, modelica_metatype _optVal, modelica_metatype _bind, modelica_metatype _inExpectedTp, modelica_metatype _bindProp);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_instBuiltinAttribute,2,0) {(void*) boxptr_Inst_instBuiltinAttribute,0}};
#define boxvar_Inst_instBuiltinAttribute MMC_REFSTRUCTLIT(boxvar_lit_Inst_instBuiltinAttribute)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instBasicTypeAttributes2(threadData_t *threadData, modelica_metatype _inSubMod, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inBaseType, modelica_fnptr _inTypeFunc);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_instBasicTypeAttributes2,2,0) {(void*) boxptr_Inst_instBasicTypeAttributes2,0}};
#define boxvar_Inst_instBasicTypeAttributes2 MMC_REFSTRUCTLIT(boxvar_lit_Inst_instBasicTypeAttributes2)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instBasicTypeAttributes(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inMod, modelica_metatype _inBaseType, modelica_fnptr _inTypeFunc, modelica_metatype _inPrefix);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_instBasicTypeAttributes,2,0) {(void*) boxptr_Inst_instBasicTypeAttributes,0}};
#define boxvar_Inst_instBasicTypeAttributes MMC_REFSTRUCTLIT(boxvar_lit_Inst_instBasicTypeAttributes)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getEnumAttributeType(threadData_t *threadData, modelica_string _inAttrName, modelica_metatype _inBaseType, modelica_metatype _inInfo);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_getEnumAttributeType,2,0) {(void*) boxptr_Inst_getEnumAttributeType,0}};
#define boxvar_Inst_getEnumAttributeType MMC_REFSTRUCTLIT(boxvar_lit_Inst_getEnumAttributeType)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getClockAttributeType(threadData_t *threadData, modelica_string _inAttrName, modelica_metatype _inBaseType, modelica_metatype _inInfo);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_getClockAttributeType,2,0) {(void*) boxptr_Inst_getClockAttributeType,0}};
#define boxvar_Inst_getClockAttributeType MMC_REFSTRUCTLIT(boxvar_lit_Inst_getClockAttributeType)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getBoolAttributeType(threadData_t *threadData, modelica_string _inAttrName, modelica_metatype _inBaseType, modelica_metatype _inInfo);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_getBoolAttributeType,2,0) {(void*) boxptr_Inst_getBoolAttributeType,0}};
#define boxvar_Inst_getBoolAttributeType MMC_REFSTRUCTLIT(boxvar_lit_Inst_getBoolAttributeType)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getStringAttributeType(threadData_t *threadData, modelica_string _inAttrName, modelica_metatype _inBaseType, modelica_metatype _inInfo);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_getStringAttributeType,2,0) {(void*) boxptr_Inst_getStringAttributeType,0}};
#define boxvar_Inst_getStringAttributeType MMC_REFSTRUCTLIT(boxvar_lit_Inst_getStringAttributeType)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getIntAttributeType(threadData_t *threadData, modelica_string _inAttrName, modelica_metatype _inBaseType, modelica_metatype _inInfo);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_getIntAttributeType,2,0) {(void*) boxptr_Inst_getIntAttributeType,0}};
#define boxvar_Inst_getIntAttributeType MMC_REFSTRUCTLIT(boxvar_lit_Inst_getIntAttributeType)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getRealAttributeType(threadData_t *threadData, modelica_string _inAttrName, modelica_metatype _inBaseType, modelica_metatype _inInfo);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_getRealAttributeType,2,0) {(void*) boxptr_Inst_getRealAttributeType,0}};
#define boxvar_Inst_getRealAttributeType MMC_REFSTRUCTLIT(boxvar_lit_Inst_getRealAttributeType)
PROTECTED_FUNCTION_STATIC modelica_fnptr omc_Inst_getBasicTypeAttrTyper(threadData_t *threadData, modelica_string _inName);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_getBasicTypeAttrTyper,2,0) {(void*) boxptr_Inst_getBasicTypeAttrTyper,0}};
#define boxvar_Inst_getBasicTypeAttrTyper MMC_REFSTRUCTLIT(boxvar_lit_Inst_getBasicTypeAttrTyper)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getBasicTypeType(threadData_t *threadData, modelica_string _inName);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_getBasicTypeType,2,0) {(void*) boxptr_Inst_getBasicTypeType,0}};
#define boxvar_Inst_getBasicTypeType MMC_REFSTRUCTLIT(boxvar_lit_Inst_getBasicTypeType)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_liftNonExpType(threadData_t *threadData, modelica_metatype _inType, modelica_metatype _inInstDims, modelica_boolean _inSplitArrays);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_liftNonExpType(threadData_t *threadData, modelica_metatype _inType, modelica_metatype _inInstDims, modelica_metatype _inSplitArrays);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_liftNonExpType,2,0) {(void*) boxptr_Inst_liftNonExpType,0}};
#define boxvar_Inst_liftNonExpType MMC_REFSTRUCTLIT(boxvar_lit_Inst_liftNonExpType)
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Inst_callingScopeCacheEq(threadData_t *threadData, modelica_metatype _inCallingScope1, modelica_metatype _inCallingScope2);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_callingScopeCacheEq(threadData_t *threadData, modelica_metatype _inCallingScope1, modelica_metatype _inCallingScope2);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_callingScopeCacheEq,2,0) {(void*) boxptr_Inst_callingScopeCacheEq,0}};
#define boxvar_Inst_callingScopeCacheEq MMC_REFSTRUCTLIT(boxvar_lit_Inst_callingScopeCacheEq)
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Inst_varIsModifiedInMod(threadData_t *threadData, modelica_string _inName, modelica_metatype _inSubmod);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_varIsModifiedInMod(threadData_t *threadData, modelica_metatype _inName, modelica_metatype _inSubmod);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_varIsModifiedInMod,2,0) {(void*) boxptr_Inst_varIsModifiedInMod,0}};
#define boxvar_Inst_varIsModifiedInMod MMC_REFSTRUCTLIT(boxvar_lit_Inst_varIsModifiedInMod)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_markTypesVarsOutsideBindings(threadData_t *threadData, modelica_metatype _inType, modelica_metatype _inMod);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_markTypesVarsOutsideBindings,2,0) {(void*) boxptr_Inst_markTypesVarsOutsideBindings,0}};
#define boxvar_Inst_markTypesVarsOutsideBindings MMC_REFSTRUCTLIT(boxvar_lit_Inst_markTypesVarsOutsideBindings)
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Inst_varIsModifiedInDerivedMod(threadData_t *threadData, modelica_string _inName, modelica_metatype _inSubmod);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_varIsModifiedInDerivedMod(threadData_t *threadData, modelica_metatype _inName, modelica_metatype _inSubmod);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_varIsModifiedInDerivedMod,2,0) {(void*) boxptr_Inst_varIsModifiedInDerivedMod,0}};
#define boxvar_Inst_varIsModifiedInDerivedMod MMC_REFSTRUCTLIT(boxvar_lit_Inst_varIsModifiedInDerivedMod)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_markBindingFromDerivedRecordMods(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fbind);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_markBindingFromDerivedRecordMods,2,0) {(void*) boxptr_Inst_markBindingFromDerivedRecordMods,0}};
#define boxvar_Inst_markBindingFromDerivedRecordMods MMC_REFSTRUCTLIT(boxvar_lit_Inst_markBindingFromDerivedRecordMods)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_markDerivedRecordOutsideBindings(threadData_t *threadData, modelica_metatype _inType, modelica_metatype _inClass);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_markDerivedRecordOutsideBindings,2,0) {(void*) boxptr_Inst_markDerivedRecordOutsideBindings,0}};
#define boxvar_Inst_markDerivedRecordOutsideBindings MMC_REFSTRUCTLIT(boxvar_lit_Inst_markDerivedRecordOutsideBindings)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instClassBasictype(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inClass, modelica_metatype _inInstDims, modelica_boolean _inImplicit, modelica_metatype _inCallingScope, modelica_metatype _inSets, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outType, modelica_metatype *out_outTypeVars, modelica_metatype *out_outState);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instClassBasictype(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inClass, modelica_metatype _inInstDims, modelica_metatype _inImplicit, modelica_metatype _inCallingScope, modelica_metatype _inSets, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outType, modelica_metatype *out_outTypeVars, modelica_metatype *out_outState);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_instClassBasictype,2,0) {(void*) boxptr_Inst_instClassBasictype,0}};
#define boxvar_Inst_instClassBasictype MMC_REFSTRUCTLIT(boxvar_lit_Inst_instClassBasictype)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instClassInProgram(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inProgram, modelica_metatype _inPath, modelica_metatype _inSource, modelica_boolean _relaxedFrontEnd, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDae);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instClassInProgram(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inProgram, modelica_metatype _inPath, modelica_metatype _inSource, modelica_metatype _relaxedFrontEnd, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDae);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_instClassInProgram,2,0) {(void*) boxptr_Inst_instClassInProgram,0}};
#define boxvar_Inst_instClassInProgram MMC_REFSTRUCTLIT(boxvar_lit_Inst_instClassInProgram)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_makeTopComponentPrefix(threadData_t *threadData, modelica_metatype _inGraph, modelica_string _inName);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_makeTopComponentPrefix,2,0) {(void*) boxptr_Inst_makeTopComponentPrefix,0}};
#define boxvar_Inst_makeTopComponentPrefix MMC_REFSTRUCTLIT(boxvar_lit_Inst_makeTopComponentPrefix)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instantiateClass__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inIH, modelica_metatype _inProgram, modelica_metatype _inPath, modelica_boolean _doSCodeDep, modelica_boolean _relaxedFrontEnd, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDAElist);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instantiateClass__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inIH, modelica_metatype _inProgram, modelica_metatype _inPath, modelica_metatype _doSCodeDep, modelica_metatype _relaxedFrontEnd, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDAElist);
static const MMC_DEFSTRUCTLIT(boxvar_lit_Inst_instantiateClass__dispatch,2,0) {(void*) boxptr_Inst_instantiateClass__dispatch,0}};
#define boxvar_Inst_instantiateClass__dispatch MMC_REFSTRUCTLIT(boxvar_lit_Inst_instantiateClass__dispatch)
PROTECTED_FUNCTION_STATIC void omc_Inst_checkInstanceRestriction(threadData_t *threadData, modelica_metatype _cdef, modelica_metatype _path, modelica_boolean _relaxedFrontEnd)
{
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
if(((!_relaxedFrontEnd) && (omc_SCodeUtil_isFunction(threadData, _cdef) || omc_SCodeUtil_isPackage(threadData, _cdef))))
{
tmpMeta1 = mmc_mk_cons(omc_AbsynUtil_pathString(threadData, _path, _OMC_LIT5, 1, 0), mmc_mk_cons(omc_SCodeDump_restrString(threadData, omc_SCodeUtil_getClassRestriction(threadData, _cdef)), MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT4, tmpMeta1, omc_SCodeUtil_elementInfo(threadData, _cdef));
MMC_THROW_INTERNAL();
}
_return: OMC_LABEL_UNUSED
return;
}
PROTECTED_FUNCTION_STATIC void boxptr_Inst_checkInstanceRestriction(threadData_t *threadData, modelica_metatype _cdef, modelica_metatype _path, modelica_metatype _relaxedFrontEnd)
{
modelica_integer tmp1;
tmp1 = mmc_unbox_integer(_relaxedFrontEnd);
omc_Inst_checkInstanceRestriction(threadData, _cdef, _path, tmp1);
return;
}
DLLExport
modelica_metatype omc_Inst_instClassType(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype __omcQ_24in_5Fenv, modelica_metatype _classElem, modelica_metatype *out_env, modelica_metatype *out_ty)
{
modelica_metatype _cache = NULL;
modelica_metatype _env = NULL;
modelica_metatype _ty = NULL;
modelica_metatype tmpMeta1;
modelica_metatype tmpMeta2;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
_env = __omcQ_24in_5Fenv;
tmpMeta1 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta2 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClass(threadData, _cache, _env, tmpMeta1, _OMC_LIT6, _OMC_LIT7, _OMC_LIT8, _classElem, tmpMeta2, 1, _OMC_LIT9, _OMC_LIT10, _OMC_LIT14 ,&_env ,NULL ,NULL ,NULL ,NULL ,&_ty, NULL, NULL, NULL);
_return: OMC_LABEL_UNUSED
if (out_env) { *out_env = _env; }
if (out_ty) { *out_ty = _ty; }
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instFunctionAnnotations(threadData_t *threadData, modelica_metatype _comments, modelica_metatype _state)
{
modelica_metatype _dae = NULL;
modelica_metatype _comment = NULL;
modelica_metatype _mod = NULL;
modelica_metatype _mod2 = NULL;
modelica_metatype tmpMeta1;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_dae = _OMC_LIT15;
_comment = mmc_mk_none();
_mod = _OMC_LIT16;
if((!omc_ClassInf_isFunction(threadData, _state)))
{
goto _return;
}
{
modelica_metatype _cmt;
for (tmpMeta1 = _comments; !listEmpty(tmpMeta1); tmpMeta1=MMC_CDR(tmpMeta1))
{
_cmt = MMC_CAR(tmpMeta1);
if(isNone(_comment))
{
_comment = (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_cmt), 3)));
}
{
modelica_metatype tmp5_1;
tmp5_1 = _cmt;
{
volatile mmc_switch_type tmp5;
int tmp6;
tmp5 = 0;
for (; tmp5 < 2; tmp5++) {
switch (MMC_SWITCH_CAST(tmp5)) {
case 0: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp5_1), 2));
if (optionNone(tmpMeta7)) goto tmp4_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 1));
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
_mod2 = tmpMeta9;
tmpMeta2 = omc_SCodeUtil_mergeModifiers(threadData, _mod2, _mod);
goto tmp4_done;
}
case 1: {
tmpMeta2 = _mod;
goto tmp4_done;
}
}
goto tmp4_end;
tmp4_end: ;
}
goto goto_3;
goto_3:;
MMC_THROW_INTERNAL();
goto tmp4_done;
tmp4_done:;
}
}
_mod = tmpMeta2;
}
}
{
modelica_metatype tmp14_1;
tmp14_1 = _mod;
{
volatile mmc_switch_type tmp14;
int tmp15;
tmp14 = 0;
for (; tmp14 < 2; tmp14++) {
switch (MMC_SWITCH_CAST(tmp14)) {
case 0: {
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_boolean tmp20;
modelica_metatype tmpMeta21;
if (mmc__uniontype__metarecord__typedef__equal(tmp14_1,2,0) == 0) goto tmp13_end;
tmp20 = (modelica_boolean)isNone(_comment);
if(tmp20)
{
tmpMeta21 = _dae;
}
else
{
tmpMeta17 = mmc_mk_box3(3, &SCode_Comment_COMMENT__desc, mmc_mk_none(), _comment);
tmpMeta18 = mmc_mk_box2(34, &DAE_Element_COMMENT__desc, tmpMeta17);
tmpMeta16 = mmc_mk_cons(tmpMeta18, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta19 = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta16);
tmpMeta21 = tmpMeta19;
}
tmpMeta11 = tmpMeta21;
goto tmp13_done;
}
case 1: {
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
tmpMeta23 = mmc_mk_box2(3, &SCode_Annotation_ANNOTATION__desc, _mod);
tmpMeta24 = mmc_mk_box3(3, &SCode_Comment_COMMENT__desc, mmc_mk_some(tmpMeta23), _comment);
tmpMeta25 = mmc_mk_box2(34, &DAE_Element_COMMENT__desc, tmpMeta24);
tmpMeta22 = mmc_mk_cons(tmpMeta25, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta26 = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta22);
tmpMeta11 = tmpMeta26;
goto tmp13_done;
}
}
goto tmp13_end;
tmp13_end: ;
}
goto goto_12;
goto_12:;
MMC_THROW_INTERNAL();
goto tmp13_done;
tmp13_done:;
}
}
_dae = tmpMeta11;
_return: OMC_LABEL_UNUSED
return _dae;
}
PROTECTED_FUNCTION_STATIC void omc_Inst_showCacheInfo(threadData_t *threadData, modelica_string _inMsg, modelica_metatype _inPath)
{
modelica_metatype tmpMeta1;
modelica_metatype tmpMeta2;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
if(omc_Flags_isSet(threadData, _OMC_LIT21))
{
tmpMeta1 = stringAppend(_inMsg,omc_AbsynUtil_pathString(threadData, _inPath, _OMC_LIT5, 1, 0));
tmpMeta2 = stringAppend(tmpMeta1,_OMC_LIT17);
fputs(MMC_STRINGDATA(tmpMeta2),stdout);
}
_return: OMC_LABEL_UNUSED
return;
}
DLLExport
modelica_string omc_Inst_generatePrefixStr(threadData_t *threadData, modelica_metatype _inPrefix)
{
modelica_string _str = NULL;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp2_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
_str = omc_AbsynUtil_pathString(threadData, omc_PrefixUtil_prefixToPath(threadData, _inPrefix), _OMC_LIT22, 0, 1);
goto tmp2_done;
}
case 1: {
_str = _OMC_LIT11;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
tmp2_done:
(void)tmp3;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp2_done2;
goto_1:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp3 < 2) {
goto tmp2_top;
}
MMC_THROW_INTERNAL();
tmp2_done2:;
}
}
;
_return: OMC_LABEL_UNUSED
return _str;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_generateCachePath(threadData_t *threadData, modelica_metatype _env, modelica_metatype _cls, modelica_metatype _prefix, modelica_metatype _callScope)
{
modelica_metatype _cachePath = NULL;
modelica_string _name = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_name = omc_StringUtil_stringAppend9(threadData, omc_InstTypes_callingScopeStr(threadData, _callScope), _OMC_LIT22, omc_SCodeDump_restrString(threadData, omc_SCodeUtil_getClassRestriction(threadData, _cls)), _OMC_LIT22, omc_Inst_generatePrefixStr(threadData, _prefix), _OMC_LIT22, _OMC_LIT11, _OMC_LIT11, _OMC_LIT11);
tmpMeta1 = mmc_mk_box2(4, &Absyn_Path_IDENT__desc, _name);
_cachePath = omc_AbsynUtil_joinPaths(threadData, tmpMeta1, omc_FGraph_getGraphName(threadData, _env));
_return: OMC_LABEL_UNUSED
return _cachePath;
}
DLLExport
modelica_metatype omc_Inst_getCachedInstance(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype __omcQ_24in_5Fenv, modelica_string _name, modelica_metatype _ref, modelica_metatype *out_env)
{
modelica_metatype _cache = NULL;
modelica_metatype _env = NULL;
modelica_metatype _cache_path = NULL;
modelica_metatype _cls = NULL;
modelica_metatype _prefix = NULL;
modelica_metatype _prefix2 = NULL;
modelica_metatype _env2 = NULL;
modelica_metatype _enc = NULL;
modelica_metatype _res = NULL;
modelica_metatype _inputs = NULL;
modelica_boolean tmp1;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta3;
modelica_metatype tmpMeta4;
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
_env = __omcQ_24in_5Fenv;
tmp1 = omc_Flags_isSet(threadData, _OMC_LIT26);
if (1 != tmp1) MMC_THROW_INTERNAL();
tmpMeta2 = omc_FNode_refData(threadData, _ref);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta2,3,5) == 0) MMC_THROW_INTERNAL();
tmpMeta3 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta2), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta3,2,8) == 0) MMC_THROW_INTERNAL();
tmpMeta4 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta3), 4));
tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta3), 6));
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta2), 3));
_cls = tmpMeta3;
_enc = tmpMeta4;
_res = tmpMeta5;
_prefix = tmpMeta6;
_env2 = omc_FGraph_openScope(threadData, _env, _enc, _name, omc_FGraph_restrictionToScopeType(threadData, _res));
{
{
volatile mmc_switch_type tmp9;
int tmp10;
tmp9 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp8_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp9 < 2; tmp9++) {
switch (MMC_SWITCH_CAST(tmp9)) {
case 0: {
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_boolean tmp22;
_cache_path = omc_Inst_generateCachePath(threadData, _env2, _cls, _prefix, _OMC_LIT27);
tmpMeta11 = omc_InstHashTable_get(threadData, _cache_path);
if (listEmpty(tmpMeta11)) goto goto_7;
tmpMeta12 = MMC_CAR(tmpMeta11);
tmpMeta13 = MMC_CDR(tmpMeta11);
if (optionNone(tmpMeta12)) goto goto_7;
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta12), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta14,0,2) == 0) goto goto_7;
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 2));
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 3));
tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta16), 1));
if (listEmpty(tmpMeta13)) goto goto_7;
tmpMeta18 = MMC_CAR(tmpMeta13);
tmpMeta19 = MMC_CDR(tmpMeta13);
if (!listEmpty(tmpMeta19)) goto goto_7;
_inputs = tmpMeta15;
_env = tmpMeta17;
tmpMeta20 = _inputs;
tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta20), 2));
_prefix2 = tmpMeta21;
tmp22 = (omc_PrefixUtil_isPrefix(threadData, _prefix) && omc_PrefixUtil_isPrefix(threadData, _prefix2));
if (1 != tmp22) goto goto_7;
goto tmp8_done;
}
case 1: {
_env = omc_FGraph_pushScopeRef(threadData, _env, _ref);
goto tmp8_done;
}
}
goto tmp8_end;
tmp8_end: ;
}
goto goto_7;
tmp8_done:
(void)tmp9;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp8_done2;
goto_7:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp9 < 2) {
goto tmp8_top;
}
MMC_THROW_INTERNAL();
tmp8_done2:;
}
}
;
_return: OMC_LABEL_UNUSED
if (out_env) { *out_env = _env; }
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_makeFullyQualified2Builtin(threadData_t *threadData, modelica_string _ident, modelica_metatype _cachedPath)
{
modelica_metatype _path = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp4_1;
tmp4_1 = _ident;
{
int tmp4;
{
switch (MMC_SWITCH_CAST(stringHashDjb2Mod(tmp4_1,8192))) {
case 7323 /* abs */: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT28), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT30;
goto tmp3_done;
}
case 5163 /* acos */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT31), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT33;
goto tmp3_done;
}
case 7234 /* activeState */: {
if (11 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT34), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT36;
goto tmp3_done;
}
case 5611 /* actualStream */: {
if (12 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT37), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT39;
goto tmp3_done;
}
case 6000 /* asin */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT40), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT42;
goto tmp3_done;
}
case 6825 /* atan */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT43), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT45;
goto tmp3_done;
}
case 4091 /* atan2 */: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT46), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT48;
goto tmp3_done;
}
case 7192 /* backSample */: {
if (10 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT49), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT51;
goto tmp3_done;
}
case 2073 /* cardinality */: {
if (11 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT52), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT54;
goto tmp3_done;
}
case 1277 /* cat */: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT55), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT57;
goto tmp3_done;
}
case 5282 /* ceil */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT58), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT60;
goto tmp3_done;
}
case 459 /* change */: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT61), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT63;
goto tmp3_done;
}
case 3184 /* classDirectory */: {
if (14 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT64), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT66;
goto tmp3_done;
}
case 1738 /* cos */: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT67), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT69;
goto tmp3_done;
}
case 114 /* cosh */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT70), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT72;
goto tmp3_done;
}
case 1199 /* cross */: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT73), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT75;
goto tmp3_done;
}
case 3380 /* delay */: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT76), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT78;
goto tmp3_done;
}
case 2496 /* der */: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT79), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT81;
goto tmp3_done;
}
case 7396 /* diagonal */: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT82), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT84;
goto tmp3_done;
}
case 2632 /* div */: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT85), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT87;
goto tmp3_done;
}
case 2266 /* edge */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT88), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT90;
goto tmp3_done;
}
case 4210 /* exp */: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT91), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT93;
goto tmp3_done;
}
case 2860 /* fill */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT94), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT96;
goto tmp3_done;
}
case 1464 /* firstTick */: {
if (9 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT97), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT99;
goto tmp3_done;
}
case 871 /* floor */: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT100), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT102;
goto tmp3_done;
}
case 1243 /* getInstanceName */: {
if (15 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT103), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT105;
goto tmp3_done;
}
case 7532 /* hold */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT106), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT108;
goto tmp3_done;
}
case 3236 /* homotopy */: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT109), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT111;
goto tmp3_done;
}
case 3759 /* identity */: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT112), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT114;
goto tmp3_done;
}
case 6568 /* inStream */: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT115), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT117;
goto tmp3_done;
}
case 4655 /* initial */: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT118), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT120;
goto tmp3_done;
}
case 336 /* initialState */: {
if (12 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT121), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT123;
goto tmp3_done;
}
case 7699 /* integer */: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT124), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT126;
goto tmp3_done;
}
case 3882 /* interval */: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT127), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT129;
goto tmp3_done;
}
case 5062 /* intAbs */: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT130), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT132;
goto tmp3_done;
}
case 3956 /* linspace */: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT133), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT135;
goto tmp3_done;
}
case 3335 /* log */: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT136), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT138;
goto tmp3_done;
}
case 4424 /* log10 */: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT139), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT141;
goto tmp3_done;
}
case 2330 /* matrix */: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT142), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT144;
goto tmp3_done;
}
case 3979 /* max */: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT145), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT147;
goto tmp3_done;
}
case 4233 /* min */: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT148), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT150;
goto tmp3_done;
}
case 4421 /* mod */: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT151), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT153;
goto tmp3_done;
}
case 2720 /* ndims */: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT154), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT156;
goto tmp3_done;
}
case 7726 /* noClock */: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT157), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT159;
goto tmp3_done;
}
case 484 /* noEvent */: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT160), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT162;
goto tmp3_done;
}
case 3834 /* ones */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT163), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT165;
goto tmp3_done;
}
case 1429 /* outerProduct */: {
if (12 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT166), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT168;
goto tmp3_done;
}
case 7788 /* pre */: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT169), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT171;
goto tmp3_done;
}
case 2274 /* previous */: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT172), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT174;
goto tmp3_done;
}
case 2322 /* print */: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT175), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT177;
goto tmp3_done;
}
case 7750 /* product */: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT178), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT180;
goto tmp3_done;
}
case 5695 /* realAbs */: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT181), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT183;
goto tmp3_done;
}
case 1353 /* rem */: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT184), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT186;
goto tmp3_done;
}
case 5458 /* rooted */: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT187), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT189;
goto tmp3_done;
}
case 7687 /* sample */: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT190), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT192;
goto tmp3_done;
}
case 2075 /* scalar */: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT193), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT195;
goto tmp3_done;
}
case 4750 /* semilinear */: {
if (10 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT196), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT198;
goto tmp3_done;
}
case 293 /* shiftSample */: {
if (11 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT199), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT201;
goto tmp3_done;
}
case 2934 /* sign */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT202), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT204;
goto tmp3_done;
}
case 2575 /* sin */: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT205), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT207;
goto tmp3_done;
}
case 3159 /* sinh */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT208), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT210;
goto tmp3_done;
}
case 3552 /* size */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT211), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT213;
goto tmp3_done;
}
case 5055 /* skew */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT214), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT216;
goto tmp3_done;
}
case 6559 /* smooth */: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT217), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT219;
goto tmp3_done;
}
case 4211 /* spatialDistribution */: {
if (19 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT220), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT222;
goto tmp3_done;
}
case 3823 /* sqrt */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT223), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT225;
goto tmp3_done;
}
case 8177 /* subSample */: {
if (9 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT226), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT228;
goto tmp3_done;
}
case 4322 /* symmetric */: {
if (9 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT229), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT231;
goto tmp3_done;
}
case 3400 /* tan */: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT232), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT234;
goto tmp3_done;
}
case 5808 /* tanh */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT235), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT237;
goto tmp3_done;
}
case 4961 /* terminal */: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT238), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT240;
goto tmp3_done;
}
case 2651 /* ticksInState */: {
if (12 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT241), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT243;
goto tmp3_done;
}
case 3084 /* timeInState */: {
if (11 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT244), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT246;
goto tmp3_done;
}
case 3952 /* transition */: {
if (10 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT247), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT249;
goto tmp3_done;
}
case 6500 /* transpose */: {
if (9 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT250), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT252;
goto tmp3_done;
}
case 3992 /* vector */: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT253), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT255;
goto tmp3_done;
}
case 920 /* zeros */: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT256), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT258;
goto tmp3_done;
}
default:
tmp3_default: OMC_LABEL_UNUSED; {
modelica_metatype tmpMeta5;
{
modelica_metatype tmp8_1;
tmp8_1 = _cachedPath;
{
volatile mmc_switch_type tmp8;
int tmp9;
tmp8 = 0;
for (; tmp8 < 2; tmp8++) {
switch (MMC_SWITCH_CAST(tmp8)) {
case 0: {
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmp8_1,1,1) == 0) goto tmp7_end;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp8_1), 2));
if (0 != MMC_STRLEN(tmpMeta10) || strcmp(MMC_STRINGDATA(_OMC_LIT11), MMC_STRINGDATA(tmpMeta10)) != 0) goto tmp7_end;
tmpMeta11 = mmc_mk_box2(4, &Absyn_Path_IDENT__desc, _ident);
tmpMeta5 = tmpMeta11;
goto tmp7_done;
}
case 1: {
tmpMeta5 = _cachedPath;
goto tmp7_done;
}
}
goto tmp7_end;
tmp7_end: ;
}
goto goto_6;
goto_6:;
goto goto_2;
goto tmp7_done;
tmp7_done:;
}
}tmpMeta1 = tmpMeta5;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_path = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _path;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_makeFullyQualified2(threadData_t *threadData, modelica_metatype _env, modelica_string _name, modelica_metatype _cachedPath)
{
modelica_metatype _path = NULL;
modelica_metatype _scope = NULL;
modelica_metatype _oscope = NULL;
modelica_metatype tmpMeta1;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta3;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_oscope = omc_FGraph_getScopePath(threadData, _env);
if(isNone(_oscope))
{
_path = omc_Inst_makeFullyQualified2Builtin(threadData, _name, _cachedPath);
}
else
{
tmpMeta1 = _oscope;
if (optionNone(tmpMeta1)) MMC_THROW_INTERNAL();
tmpMeta2 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 1));
_scope = tmpMeta2;
{
modelica_metatype tmp6_1;
tmp6_1 = _cachedPath;
{
volatile mmc_switch_type tmp6;
int tmp7;
tmp6 = 0;
for (; tmp6 < 2; tmp6++) {
switch (MMC_SWITCH_CAST(tmp6)) {
case 0: {
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
if (mmc__uniontype__metarecord__typedef__equal(tmp6_1,1,1) == 0) goto tmp5_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp6_1), 2));
if (0 != MMC_STRLEN(tmpMeta8) || strcmp(MMC_STRINGDATA(_OMC_LIT11), MMC_STRINGDATA(tmpMeta8)) != 0) goto tmp5_end;
tmpMeta9 = mmc_mk_box2(4, &Absyn_Path_IDENT__desc, _name);
tmpMeta3 = tmpMeta9;
goto tmp5_done;
}
case 1: {
tmpMeta3 = _cachedPath;
goto tmp5_done;
}
}
goto tmp5_end;
tmp5_end: ;
}
goto goto_4;
goto_4:;
MMC_THROW_INTERNAL();
goto tmp5_done;
tmp5_done:;
}
}
_path = omc_AbsynUtil_joinPaths(threadData, _scope, tmpMeta3);
}
_return: OMC_LABEL_UNUSED
return _path;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_updateComponentsInEnv2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _pre, modelica_metatype _mod, modelica_metatype _crefs, modelica_metatype _ci_state, modelica_boolean _impl, modelica_metatype _inUpdatedComps, modelica_metatype _currentCref, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUpdatedComps)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outUpdatedComps = NULL;
modelica_string _name = NULL;
modelica_metatype _binding = NULL;
modelica_metatype tmpMeta1;
modelica_metatype tmpMeta12;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _inCache;
_outEnv = _inEnv;
_outIH = _inIH;
_outUpdatedComps = _inUpdatedComps;
{
modelica_metatype _cr;
for (tmpMeta1 = _crefs; !listEmpty(tmpMeta1); tmpMeta1=MMC_CDR(tmpMeta1))
{
_cr = MMC_CAR(tmpMeta1);
{
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_boolean tmp11;
tmpMeta6 = _cr;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,2,2) == 0) goto goto_2;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 3));
if (!listEmpty(tmpMeta8)) goto goto_2;
_name = tmpMeta7;
omc_Lookup_lookupIdentLocal(threadData, _outCache, _outEnv, _name, &tmpMeta9, NULL, NULL, NULL, NULL);
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta9), 5));
_binding = tmpMeta10;
tmp11 = omc_DAEUtil_isBound(threadData, _binding);
if (1 != tmp11) goto goto_2;
goto tmp3_done;
}
case 1: {
_outCache = omc_Inst_updateComponentInEnv(threadData, _outCache, _outEnv, _outIH, _pre, _mod, _cr, _ci_state, _impl, _outUpdatedComps, _currentCref ,&_outEnv ,&_outIH ,&_outUpdatedComps);
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 2) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
;
}
}
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outUpdatedComps) { *out_outUpdatedComps = _outUpdatedComps; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_updateComponentsInEnv2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _pre, modelica_metatype _mod, modelica_metatype _crefs, modelica_metatype _ci_state, modelica_metatype _impl, modelica_metatype _inUpdatedComps, modelica_metatype _currentCref, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUpdatedComps)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_impl);
_outCache = omc_Inst_updateComponentsInEnv2(threadData, _inCache, _inEnv, _inIH, _pre, _mod, _crefs, _ci_state, tmp1, _inUpdatedComps, _currentCref, out_outEnv, out_outIH, out_outUpdatedComps);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_removeSelfReferenceAndUpdate(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inRefs, modelica_metatype _inRef, modelica_metatype _inPath, modelica_metatype _inState, modelica_metatype _iattr, modelica_metatype _inPrefixes, modelica_boolean _impl, modelica_metatype _inInstDims, modelica_metatype _pre, modelica_metatype _mods, modelica_metatype _scodeMod, modelica_metatype _info, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_o1)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outStore = NULL;
modelica_metatype _o1 = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;volatile modelica_metatype tmp4_5;volatile modelica_metatype tmp4_6;volatile modelica_metatype tmp4_7;volatile modelica_metatype tmp4_8;volatile modelica_metatype tmp4_9;volatile modelica_metatype tmp4_10;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inIH;
tmp4_4 = _inStore;
tmp4_5 = _inRefs;
tmp4_6 = _inRef;
tmp4_7 = _inPath;
tmp4_8 = _inState;
tmp4_9 = _iattr;
tmp4_10 = _inInstDims;
{
modelica_metatype _sty = NULL;
modelica_metatype _c1 = NULL;
modelica_metatype _cl1 = NULL;
modelica_metatype _cl2 = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _env = NULL;
modelica_metatype _compenv = NULL;
modelica_metatype _cenv = NULL;
modelica_integer _i1;
modelica_integer _i2;
modelica_metatype _ad = NULL;
modelica_metatype _prl1 = NULL;
modelica_metatype _var1 = NULL;
modelica_metatype _dir = NULL;
modelica_string _n = NULL;
modelica_metatype _c = NULL;
modelica_metatype _ty = NULL;
modelica_metatype _state = NULL;
modelica_metatype _vis = NULL;
modelica_metatype _ct = NULL;
modelica_metatype _attr = NULL;
modelica_metatype _dims = NULL;
modelica_metatype _inst_dims = NULL;
modelica_metatype _new_var = NULL;
modelica_metatype _ih = NULL;
modelica_metatype _io = NULL;
modelica_metatype _store = NULL;
modelica_metatype _m = NULL;
modelica_metatype _smod = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 10; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_boolean tmp6;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_cl1 = tmp4_5;
_c1 = tmp4_6;
_cl2 = omc_InstUtil_removeCrefFromCrefs(threadData, _cl1, _c1);
_i1 = listLength(_cl2);
_i2 = listLength(_cl1);
tmp6 = (_i1 == _i2);
if (1 != tmp6) goto goto_2;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _cl2;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_6,2,2) == 0) goto tmp3_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_6), 2));
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 2));
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 3));
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 4));
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 5));
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 6));
_c1 = tmp4_6;
_n = tmpMeta7;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_cl1 = tmp4_5;
_sty = tmp4_7;
_state = tmp4_8;
_attr = tmp4_9;
_ad = tmpMeta8;
_ct = tmpMeta9;
_prl1 = tmpMeta10;
_var1 = tmpMeta11;
_dir = tmpMeta12;
_inst_dims = tmp4_10;
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT260);
_cl2 = omc_InstUtil_removeCrefFromCrefs(threadData, _cl1, _c1);
_cache = omc_Lookup_lookupClass(threadData, _cache, _env, _sty, mmc_mk_some(_info) ,&_c ,&_cenv);
_cache = omc_InstUtil_elabArraydim(threadData, _cache, _cenv, _c1, _sty, _ad, mmc_mk_none(), _impl, 1, 0, _pre, _info, _inst_dims ,&_dims);
_smod = omc_SCodeInstUtil_removeSelfReferenceFromMod(threadData, _scodeMod, _c1);
tmpMeta13 = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, _n);
_cache = omc_Mod_elabMod(threadData, _cache, _env, _ih, _pre, _smod, _impl, tmpMeta13, _info ,&_m);
_cenv = omc_FGraph_createVersionScope(threadData, _env, _n, _pre, _m, _cenv, _c, _ih ,&_c ,&_ih);
tmpMeta14 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_InstVar_instVar(threadData, _cache, _cenv, _ih, _store, _state, _m, _pre, _n, _c, _attr, _inPrefixes, _dims, tmpMeta14, _inst_dims, 1, _OMC_LIT261, _info, _OMC_LIT10, _OMC_LIT14, _env ,&_compenv ,&_ih ,&_store ,NULL ,NULL ,&_ty ,NULL);
_io = omc_SCodeUtil_prefixesInnerOuter(threadData, _inPrefixes);
_vis = omc_SCodeUtil_prefixesVisibility(threadData, _inPrefixes);
tmpMeta15 = mmc_mk_box7(3, &DAE_Attributes_ATTR__desc, omc_DAEUtil_toConnectorTypeNoState(threadData, _ct, mmc_mk_none()), _prl1, _var1, _dir, _io, _vis);
tmpMeta16 = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _n, tmpMeta15, _ty, _OMC_LIT262, mmc_mk_boolean(0), mmc_mk_none());
_new_var = tmpMeta16;
_env = omc_FGraph_updateComp(threadData, _env, _new_var, _OMC_LIT263, _compenv);
omc_ErrorExt_rollBack(threadData, _OMC_LIT260);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _cl2;
goto tmp3_done;
}
case 2: {
omc_ErrorExt_rollBack(threadData, _OMC_LIT260);
goto goto_2;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_6,2,2) == 0) goto tmp3_end;
tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_6), 2));
tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 2));
tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 3));
tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 4));
tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 5));
tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 6));
_c1 = tmp4_6;
_n = tmpMeta17;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_cl1 = tmp4_5;
_sty = tmp4_7;
_state = tmp4_8;
_attr = tmp4_9;
_ad = tmpMeta18;
_ct = tmpMeta19;
_prl1 = tmpMeta20;
_var1 = tmpMeta21;
_dir = tmpMeta22;
_inst_dims = tmp4_10;
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT260);
_cl2 = omc_InstUtil_removeCrefFromCrefs(threadData, _cl1, _c1);
_cache = omc_Lookup_lookupClass(threadData, _cache, _env, _sty, mmc_mk_some(_info) ,&_c ,&_cenv);
_cache = omc_InstUtil_elabArraydim(threadData, _cache, _cenv, _c1, _sty, _ad, mmc_mk_none(), _impl, 1, 0, _pre, _info, _inst_dims ,&_dims);
_smod = omc_SCodeInstUtil_removeNonConstantBindingsKeepRedeclares(threadData, _scodeMod, 0);
tmpMeta23 = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, _n);
_cache = omc_Mod_elabMod(threadData, _cache, _env, _ih, _pre, _smod, _impl, tmpMeta23, _info ,&_m);
_cenv = omc_FGraph_createVersionScope(threadData, _env, _n, _pre, _m, _cenv, _c, _ih ,&_c ,&_ih);
tmpMeta24 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_InstVar_instVar(threadData, _cache, _cenv, _ih, _store, _state, _m, _pre, _n, _c, _attr, _inPrefixes, _dims, tmpMeta24, _inst_dims, 1, _OMC_LIT261, _info, _OMC_LIT10, _OMC_LIT14, _env ,&_compenv ,&_ih ,&_store ,NULL ,NULL ,&_ty ,NULL);
_io = omc_SCodeUtil_prefixesInnerOuter(threadData, _inPrefixes);
_vis = omc_SCodeUtil_prefixesVisibility(threadData, _inPrefixes);
tmpMeta25 = mmc_mk_box7(3, &DAE_Attributes_ATTR__desc, omc_DAEUtil_toConnectorTypeNoState(threadData, _ct, mmc_mk_none()), _prl1, _var1, _dir, _io, _vis);
tmpMeta26 = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _n, tmpMeta25, _ty, _OMC_LIT262, mmc_mk_boolean(0), mmc_mk_none());
_new_var = tmpMeta26;
_env = omc_FGraph_updateComp(threadData, _env, _new_var, _OMC_LIT263, _compenv);
omc_ErrorExt_rollBack(threadData, _OMC_LIT260);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _cl2;
goto tmp3_done;
}
case 4: {
omc_ErrorExt_rollBack(threadData, _OMC_LIT260);
goto goto_2;
goto tmp3_done;
}
case 5: {
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
modelica_metatype tmpMeta29;
modelica_metatype tmpMeta30;
modelica_metatype tmpMeta31;
modelica_metatype tmpMeta32;
modelica_metatype tmpMeta33;
modelica_metatype tmpMeta34;
modelica_metatype tmpMeta35;
modelica_metatype tmpMeta36;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_6,2,2) == 0) goto tmp3_end;
tmpMeta27 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_6), 2));
tmpMeta28 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 2));
tmpMeta29 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 3));
tmpMeta30 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 4));
tmpMeta31 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 5));
tmpMeta32 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 6));
_c1 = tmp4_6;
_n = tmpMeta27;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_cl1 = tmp4_5;
_sty = tmp4_7;
_state = tmp4_8;
_attr = tmp4_9;
_ad = tmpMeta28;
_ct = tmpMeta29;
_prl1 = tmpMeta30;
_var1 = tmpMeta31;
_dir = tmpMeta32;
_inst_dims = tmp4_10;
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT260);
_cl2 = omc_InstUtil_removeCrefFromCrefs(threadData, _cl1, _c1);
_cache = omc_Lookup_lookupClass(threadData, _cache, _env, _sty, mmc_mk_some(_info) ,&_c ,&_cenv);
_cache = omc_InstUtil_elabArraydim(threadData, _cache, _cenv, _c1, _sty, _ad, mmc_mk_none(), _impl, 1, 0, _pre, _info, _inst_dims ,&_dims);
_smod = omc_SCodeInstUtil_removeNonConstantBindingsKeepRedeclares(threadData, _scodeMod, 1);
tmpMeta33 = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, _n);
_cache = omc_Mod_elabMod(threadData, _cache, _env, _ih, _pre, _smod, _impl, tmpMeta33, _info ,&_m);
_cenv = omc_FGraph_createVersionScope(threadData, _env, _n, _pre, _m, _cenv, _c, _ih ,&_c ,&_ih);
tmpMeta34 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_InstVar_instVar(threadData, _cache, _cenv, _ih, _store, _state, _m, _pre, _n, _c, _attr, _inPrefixes, _dims, tmpMeta34, _inst_dims, 1, _OMC_LIT261, _info, _OMC_LIT10, _OMC_LIT14, _env ,&_compenv ,&_ih ,&_store ,NULL ,NULL ,&_ty ,NULL);
_io = omc_SCodeUtil_prefixesInnerOuter(threadData, _inPrefixes);
_vis = omc_SCodeUtil_prefixesVisibility(threadData, _inPrefixes);
tmpMeta35 = mmc_mk_box7(3, &DAE_Attributes_ATTR__desc, omc_DAEUtil_toConnectorTypeNoState(threadData, _ct, mmc_mk_none()), _prl1, _var1, _dir, _io, _vis);
tmpMeta36 = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _n, tmpMeta35, _ty, _OMC_LIT262, mmc_mk_boolean(0), mmc_mk_none());
_new_var = tmpMeta36;
_env = omc_FGraph_updateComp(threadData, _env, _new_var, _OMC_LIT263, _compenv);
omc_ErrorExt_rollBack(threadData, _OMC_LIT260);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _cl2;
goto tmp3_done;
}
case 6: {
omc_ErrorExt_rollBack(threadData, _OMC_LIT260);
goto goto_2;
goto tmp3_done;
}
case 7: {
modelica_metatype tmpMeta37;
modelica_metatype tmpMeta38;
modelica_metatype tmpMeta39;
modelica_metatype tmpMeta40;
modelica_metatype tmpMeta41;
modelica_metatype tmpMeta42;
modelica_metatype tmpMeta43;
modelica_metatype tmpMeta44;
modelica_metatype tmpMeta45;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_6,2,2) == 0) goto tmp3_end;
tmpMeta37 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_6), 2));
tmpMeta38 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 2));
tmpMeta39 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 3));
tmpMeta40 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 4));
tmpMeta41 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 5));
tmpMeta42 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 6));
_c1 = tmp4_6;
_n = tmpMeta37;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_cl1 = tmp4_5;
_sty = tmp4_7;
_state = tmp4_8;
_attr = tmp4_9;
_ad = tmpMeta38;
_ct = tmpMeta39;
_prl1 = tmpMeta40;
_var1 = tmpMeta41;
_dir = tmpMeta42;
_inst_dims = tmp4_10;
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT260);
_cl2 = omc_InstUtil_removeCrefFromCrefs(threadData, _cl1, _c1);
_cache = omc_Lookup_lookupClass(threadData, _cache, _env, _sty, mmc_mk_some(_info) ,&_c ,&_cenv);
_cache = omc_InstUtil_elabArraydim(threadData, _cache, _cenv, _c1, _sty, _ad, mmc_mk_none(), _impl, 1, 0, _pre, _info, _inst_dims ,&_dims);
_m = _OMC_LIT7;
_cenv = omc_FGraph_createVersionScope(threadData, _env, _n, _pre, _m, _cenv, _c, _ih ,&_c ,&_ih);
tmpMeta43 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_InstVar_instVar(threadData, _cache, _cenv, _ih, _store, _state, _m, _pre, _n, _c, _attr, _inPrefixes, _dims, tmpMeta43, _inst_dims, 1, _OMC_LIT261, _info, _OMC_LIT10, _OMC_LIT14, _env ,&_compenv ,&_ih ,&_store ,NULL ,NULL ,&_ty ,NULL);
_io = omc_SCodeUtil_prefixesInnerOuter(threadData, _inPrefixes);
_vis = omc_SCodeUtil_prefixesVisibility(threadData, _inPrefixes);
tmpMeta44 = mmc_mk_box7(3, &DAE_Attributes_ATTR__desc, omc_DAEUtil_toConnectorTypeNoState(threadData, _ct, mmc_mk_none()), _prl1, _var1, _dir, _io, _vis);
tmpMeta45 = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _n, tmpMeta44, _ty, _OMC_LIT262, mmc_mk_boolean(0), mmc_mk_none());
_new_var = tmpMeta45;
_env = omc_FGraph_updateComp(threadData, _env, _new_var, _OMC_LIT263, _compenv);
omc_ErrorExt_rollBack(threadData, _OMC_LIT260);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _cl2;
goto tmp3_done;
}
case 8: {
omc_ErrorExt_rollBack(threadData, _OMC_LIT260);
goto goto_2;
goto tmp3_done;
}
case 9: {
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_cl1 = tmp4_5;
_c1 = tmp4_6;
_cl2 = omc_InstUtil_removeCrefFromCrefs(threadData, _cl1, _c1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _cl2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 10) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outStore = tmpMeta[0+3];
_o1 = tmpMeta[0+4];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outStore) { *out_outStore = _outStore; }
if (out_o1) { *out_o1 = _o1; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_removeSelfReferenceAndUpdate(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inRefs, modelica_metatype _inRef, modelica_metatype _inPath, modelica_metatype _inState, modelica_metatype _iattr, modelica_metatype _inPrefixes, modelica_metatype _impl, modelica_metatype _inInstDims, modelica_metatype _pre, modelica_metatype _mods, modelica_metatype _scodeMod, modelica_metatype _info, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_o1)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_impl);
_outCache = omc_Inst_removeSelfReferenceAndUpdate(threadData, _inCache, _inEnv, _inIH, _inStore, _inRefs, _inRef, _inPath, _inState, _iattr, _inPrefixes, tmp1, _inInstDims, _pre, _mods, _scodeMod, _info, out_outEnv, out_outIH, out_outStore, out_o1);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_modifyInstantiateClass(threadData_t *threadData, modelica_metatype _inMod, modelica_metatype _path, modelica_metatype *out_omod2)
{
modelica_metatype _omod1 = NULL;
modelica_metatype _omod2 = NULL;
modelica_metatype tmpMeta1;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _inMod;
{
modelica_string _id = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_boolean tmp10;
modelica_metatype tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,4) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,2,8) == 0) goto tmp3_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
_id = tmpMeta7;
tmp10 = (modelica_boolean)(stringEqual(_id, omc_AbsynUtil_pathString(threadData, _path, _OMC_LIT5, 1, 0)));
if(tmp10)
{
tmpMeta8 = mmc_mk_box2(0, _inMod, _OMC_LIT7);
tmpMeta11 = tmpMeta8;
}
else
{
tmpMeta9 = mmc_mk_box2(0, _OMC_LIT7, _inMod);
tmpMeta11 = tmpMeta9;
}
tmpMeta1 = tmpMeta11;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta12;
tmpMeta12 = mmc_mk_box2(0, _OMC_LIT7, _inMod);
tmpMeta1 = tmpMeta12;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
tmpMeta13 = tmpMeta1;
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 1));
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 2));
_omod1 = tmpMeta14;
_omod2 = tmpMeta15;
_return: OMC_LABEL_UNUSED
if (out_omod2) { *out_omod2 = _omod2; }
return _omod1;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instBoschClassInProgram(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inProgram, modelica_metatype _inPath, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDae)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;volatile modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inIH;
tmp4_4 = _inProgram;
tmp4_5 = _inPath;
{
modelica_metatype _dae = NULL;
modelica_metatype _env_1 = NULL;
modelica_metatype _env = NULL;
modelica_metatype _c = NULL;
modelica_string _name1 = NULL;
modelica_string _name2 = NULL;
modelica_metatype _cs = NULL;
modelica_metatype _path = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _ih = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 3; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_boolean tmp10;
modelica_metatype tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,1,1) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta7 = MMC_CAR(tmp4_4);
tmpMeta8 = MMC_CDR(tmp4_4);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,2,8) == 0) goto tmp3_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 2));
_name2 = tmpMeta6;
_c = tmpMeta7;
_name1 = tmpMeta9;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
tmp10 = (stringEqual(_name1, _name2));
if (1 != tmp10) goto goto_2;
tmpMeta11 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClass(threadData, _cache, _env, _ih, _OMC_LIT6, _OMC_LIT7, _OMC_LIT8, _c, tmpMeta11, 0, _OMC_LIT27, _OMC_LIT10, _OMC_LIT14 ,&_env_1 ,&_ih ,NULL ,&_dae ,NULL ,NULL ,NULL ,NULL ,NULL);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env_1;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _dae;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_boolean tmp16;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,1,1) == 0) goto tmp3_end;
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta13 = MMC_CAR(tmp4_4);
tmpMeta14 = MMC_CDR(tmp4_4);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta13,2,8) == 0) goto tmp3_end;
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 2));
_path = tmp4_5;
_name2 = tmpMeta12;
_name1 = tmpMeta15;
_cs = tmpMeta14;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
tmp4 += 1;
tmp16 = (stringEqual(_name1, _name2));
if (0 != tmp16) goto goto_2;
tmpMeta[0+0] = omc_Inst_instBoschClassInProgram(threadData, _cache, _env, _ih, _cs, _path, &tmpMeta[0+1], &tmpMeta[0+2], &tmpMeta[0+3]);
goto tmp3_done;
}
case 2: {
if (!listEmpty(tmp4_4)) goto tmp3_end;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _OMC_LIT15;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 3) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outDae = tmpMeta[0+3];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outDae) { *out_outDae = _outDae; }
return _outCache;
}
DLLExport
modelica_metatype omc_Inst_instantiateBoschClass(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inIH, modelica_metatype _inProgram, modelica_metatype _inPath, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDAElist)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outDAElist = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;
tmp4_1 = _inCache;
tmp4_2 = _inIH;
tmp4_3 = _inProgram;
tmp4_4 = _inPath;
{
modelica_metatype _path = NULL;
modelica_metatype _env = NULL;
modelica_metatype _env_1 = NULL;
modelica_metatype _env_2 = NULL;
modelica_metatype _dae = NULL;
modelica_metatype _cdecls = NULL;
modelica_string _cname_str = NULL;
modelica_metatype _cdef = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _ih = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 4; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
if (!listEmpty(tmp4_3)) goto tmp3_end;
tmp4 += 2;
tmpMeta6 = MMC_REFSTRUCTLIT(mmc_nil);
omc_Error_addMessage(threadData, _OMC_LIT266, tmpMeta6);
goto goto_2;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta7 = MMC_CAR(tmp4_3);
tmpMeta8 = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,1,1) == 0) goto tmp3_end;
_cdecls = tmp4_3;
_path = tmp4_4;
_cache = tmp4_1;
_ih = tmp4_2;
tmp4 += 1;
_cache = omc_Builtin_initialGraph(threadData, _cache ,&_env);
_env_1 = omc_FGraphBuildEnv_mkProgramGraph(threadData, _cdecls, _OMC_LIT267, _env);
tmpMeta[0+0] = omc_Inst_instBoschClassInProgram(threadData, _cache, _env_1, _ih, _cdecls, _path, &tmpMeta[0+1], &tmpMeta[0+2], &tmpMeta[0+3]);
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta9 = MMC_CAR(tmp4_3);
tmpMeta10 = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,0,2) == 0) goto tmp3_end;
_cdecls = tmp4_3;
_path = tmp4_4;
_cache = tmp4_1;
_ih = tmp4_2;
_cache = omc_Builtin_initialGraph(threadData, _cache ,&_env);
_env_1 = omc_FGraphBuildEnv_mkProgramGraph(threadData, _cdecls, _OMC_LIT267, _env);
tmpMeta13 = omc_Lookup_lookupClass(threadData, _cache, _env_1, _path, _OMC_LIT270, &tmpMeta11, &tmpMeta12);
_cache = tmpMeta13;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta11,2,8) == 0) goto goto_2;
_cdef = tmpMeta11;
_env_2 = tmpMeta12;
tmpMeta14 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClass(threadData, _cache, _env_2, _ih, _OMC_LIT6, _OMC_LIT7, _OMC_LIT8, _cdef, tmpMeta14, 0, _OMC_LIT27, _OMC_LIT10, _OMC_LIT14 ,&_env_2 ,&_ih ,NULL ,&_dae ,NULL ,NULL ,NULL ,NULL ,NULL);
omc_AbsynUtil_pathString(threadData, _path, _OMC_LIT5, 1, 0);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env_2;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _dae;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta15;
_path = tmp4_4;
_cname_str = omc_AbsynUtil_pathString(threadData, _path, _OMC_LIT5, 1, 0);
tmpMeta15 = mmc_mk_cons(_cname_str, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addMessage(threadData, _OMC_LIT273, tmpMeta15);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 4) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outDAElist = tmpMeta[0+3];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outDAElist) { *out_outDAElist = _outDAElist; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_insertClassAttribute(threadData_t *threadData, modelica_metatype _inAttrs, modelica_string _attrName, modelica_metatype _inAttrExp)
{
modelica_metatype _outAttrs = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_string tmp4_2;
tmp4_1 = _inAttrs;
tmp4_2 = _attrName;
{
modelica_metatype _objectiveE = NULL;
modelica_metatype _startTimeE = NULL;
modelica_metatype _finalTimeE = NULL;
modelica_metatype _objectiveIntegrandE = NULL;
modelica_metatype _attrs = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 5; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
if (9 != MMC_STRLEN(tmp4_2) || strcmp(MMC_STRINGDATA(_OMC_LIT279), MMC_STRINGDATA(tmp4_2)) != 0) goto tmp3_end;
_attrs = tmp4_1;
tmpMeta6 = _attrs;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
if (listEmpty(tmpMeta7)) goto goto_2;
tmpMeta8 = MMC_CAR(tmpMeta7);
tmpMeta9 = MMC_CDR(tmpMeta7);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,28,1) == 0) goto goto_2;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 3));
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 4));
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 5));
if (!listEmpty(tmpMeta9)) goto goto_2;
_objectiveIntegrandE = tmpMeta11;
_startTimeE = tmpMeta12;
_finalTimeE = tmpMeta13;
tmpMeta15 = mmc_mk_box5(3, &DAE_ClassAttributes_OPTIMIZATION__ATTRS__desc, mmc_mk_some(_inAttrExp), _objectiveIntegrandE, _startTimeE, _finalTimeE);
tmpMeta16 = mmc_mk_box2(31, &DAE_Element_CLASS__ATTRIBUTES__desc, tmpMeta15);
tmpMeta14 = mmc_mk_cons(tmpMeta16, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta17 = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta14);
tmpMeta1 = tmpMeta17;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
modelica_metatype tmpMeta29;
if (18 != MMC_STRLEN(tmp4_2) || strcmp(MMC_STRINGDATA(_OMC_LIT280), MMC_STRINGDATA(tmp4_2)) != 0) goto tmp3_end;
_attrs = tmp4_1;
tmpMeta18 = _attrs;
tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta18), 2));
if (listEmpty(tmpMeta19)) goto goto_2;
tmpMeta20 = MMC_CAR(tmpMeta19);
tmpMeta21 = MMC_CDR(tmpMeta19);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta20,28,1) == 0) goto goto_2;
tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta20), 2));
tmpMeta23 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 2));
tmpMeta24 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 4));
tmpMeta25 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 5));
if (!listEmpty(tmpMeta21)) goto goto_2;
_objectiveE = tmpMeta23;
_startTimeE = tmpMeta24;
_finalTimeE = tmpMeta25;
tmpMeta27 = mmc_mk_box5(3, &DAE_ClassAttributes_OPTIMIZATION__ATTRS__desc, _objectiveE, mmc_mk_some(_inAttrExp), _startTimeE, _finalTimeE);
tmpMeta28 = mmc_mk_box2(31, &DAE_Element_CLASS__ATTRIBUTES__desc, tmpMeta27);
tmpMeta26 = mmc_mk_cons(tmpMeta28, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta29 = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta26);
tmpMeta1 = tmpMeta29;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta30;
modelica_metatype tmpMeta31;
modelica_metatype tmpMeta32;
modelica_metatype tmpMeta33;
modelica_metatype tmpMeta34;
modelica_metatype tmpMeta35;
modelica_metatype tmpMeta36;
modelica_metatype tmpMeta37;
modelica_metatype tmpMeta38;
modelica_metatype tmpMeta39;
modelica_metatype tmpMeta40;
modelica_metatype tmpMeta41;
if (9 != MMC_STRLEN(tmp4_2) || strcmp(MMC_STRINGDATA(_OMC_LIT281), MMC_STRINGDATA(tmp4_2)) != 0) goto tmp3_end;
_attrs = tmp4_1;
tmpMeta30 = _attrs;
tmpMeta31 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta30), 2));
if (listEmpty(tmpMeta31)) goto goto_2;
tmpMeta32 = MMC_CAR(tmpMeta31);
tmpMeta33 = MMC_CDR(tmpMeta31);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta32,28,1) == 0) goto goto_2;
tmpMeta34 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta32), 2));
tmpMeta35 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta34), 2));
tmpMeta36 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta34), 3));
tmpMeta37 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta34), 5));
if (!listEmpty(tmpMeta33)) goto goto_2;
_objectiveE = tmpMeta35;
_objectiveIntegrandE = tmpMeta36;
_finalTimeE = tmpMeta37;
tmpMeta39 = mmc_mk_box5(3, &DAE_ClassAttributes_OPTIMIZATION__ATTRS__desc, _objectiveE, _objectiveIntegrandE, mmc_mk_some(_inAttrExp), _finalTimeE);
tmpMeta40 = mmc_mk_box2(31, &DAE_Element_CLASS__ATTRIBUTES__desc, tmpMeta39);
tmpMeta38 = mmc_mk_cons(tmpMeta40, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta41 = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta38);
tmpMeta1 = tmpMeta41;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta42;
modelica_metatype tmpMeta43;
modelica_metatype tmpMeta44;
modelica_metatype tmpMeta45;
modelica_metatype tmpMeta46;
modelica_metatype tmpMeta47;
modelica_metatype tmpMeta48;
modelica_metatype tmpMeta49;
modelica_metatype tmpMeta50;
modelica_metatype tmpMeta51;
modelica_metatype tmpMeta52;
modelica_metatype tmpMeta53;
if (9 != MMC_STRLEN(tmp4_2) || strcmp(MMC_STRINGDATA(_OMC_LIT282), MMC_STRINGDATA(tmp4_2)) != 0) goto tmp3_end;
_attrs = tmp4_1;
tmpMeta42 = _attrs;
tmpMeta43 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta42), 2));
if (listEmpty(tmpMeta43)) goto goto_2;
tmpMeta44 = MMC_CAR(tmpMeta43);
tmpMeta45 = MMC_CDR(tmpMeta43);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta44,28,1) == 0) goto goto_2;
tmpMeta46 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta44), 2));
tmpMeta47 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta46), 2));
tmpMeta48 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta46), 3));
tmpMeta49 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta46), 4));
if (!listEmpty(tmpMeta45)) goto goto_2;
_objectiveE = tmpMeta47;
_objectiveIntegrandE = tmpMeta48;
_startTimeE = tmpMeta49;
tmpMeta51 = mmc_mk_box5(3, &DAE_ClassAttributes_OPTIMIZATION__ATTRS__desc, _objectiveE, _objectiveIntegrandE, _startTimeE, mmc_mk_some(_inAttrExp));
tmpMeta52 = mmc_mk_box2(31, &DAE_Element_CLASS__ATTRIBUTES__desc, tmpMeta51);
tmpMeta50 = mmc_mk_cons(tmpMeta52, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta53 = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta50);
tmpMeta1 = tmpMeta53;
goto tmp3_done;
}
case 4: {
modelica_boolean tmp54;
tmp54 = omc_Flags_isSet(threadData, _OMC_LIT277);
if (1 != tmp54) goto goto_2;
omc_Debug_trace(threadData, _OMC_LIT278);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outAttrs = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _outAttrs;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instClassAttributes2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inPrefix, modelica_metatype _inAttrs, modelica_boolean _inImplicit, modelica_metatype _inInfo, modelica_metatype _inClsAttrs, modelica_metatype *out_outEnv, modelica_metatype *out_outDae)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_metatype tmp4_4;modelica_boolean tmp4_5;modelica_metatype tmp4_6;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inPrefix;
tmp4_4 = _inAttrs;
tmp4_5 = _inImplicit;
tmp4_6 = _inClsAttrs;
{
modelica_metatype _env = NULL;
modelica_metatype _pre = NULL;
modelica_boolean _impl;
modelica_metatype _na = NULL;
modelica_metatype _rest = NULL;
modelica_metatype _cache = NULL;
modelica_string _attrName = NULL;
modelica_metatype _attrExp = NULL;
modelica_metatype _outExp = NULL;
modelica_metatype _clsAttrs = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 3; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_4)) goto tmp3_end;
_cache = tmp4_1;
_env = tmp4_2;
_clsAttrs = tmp4_6;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _clsAttrs;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_4);
tmpMeta7 = MMC_CDR(tmp4_4);
_na = tmpMeta6;
_rest = tmpMeta7;
_cache = tmp4_1;
_env = tmp4_2;
_pre = tmp4_3;
_impl = tmp4_5;
_clsAttrs = tmp4_6;
tmpMeta8 = _na;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 3));
_attrName = tmpMeta9;
_attrExp = tmpMeta10;
_cache = omc_Static_elabExp(threadData, _cache, _env, _attrExp, _impl, 0, _pre, _inInfo ,&_outExp ,NULL);
_clsAttrs = omc_Inst_insertClassAttribute(threadData, _clsAttrs, _attrName, _outExp);
_inCache = _cache;
_inEnv = _env;
_inPrefix = _pre;
_inAttrs = _rest;
_inImplicit = _impl;
_inClsAttrs = _clsAttrs;
goto _tailrecursive;
goto tmp3_done;
}
case 2: {
omc_Error_addMessage(threadData, _OMC_LIT285, _OMC_LIT287);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outDae = tmpMeta[0+2];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outDae) { *out_outDae = _outDae; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instClassAttributes2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inPrefix, modelica_metatype _inAttrs, modelica_metatype _inImplicit, modelica_metatype _inInfo, modelica_metatype _inClsAttrs, modelica_metatype *out_outEnv, modelica_metatype *out_outDae)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImplicit);
_outCache = omc_Inst_instClassAttributes2(threadData, _inCache, _inEnv, _inPrefix, _inAttrs, tmp1, _inInfo, _inClsAttrs, out_outEnv, out_outDae);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instClassAttributes(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inPrefix, modelica_metatype _inAttrs, modelica_boolean _inImplicit, modelica_metatype _inInfo, modelica_metatype *out_outEnv, modelica_metatype *out_outDae)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inAttrs;
{
modelica_metatype _cache = NULL;
modelica_metatype _env = NULL;
modelica_metatype _clsAttrs = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 3; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_3)) goto tmp3_end;
_cache = tmp4_1;
_env = tmp4_2;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _OMC_LIT15;
goto tmp3_done;
}
case 1: {
_clsAttrs = _OMC_LIT291;
tmpMeta[0+0] = omc_Inst_instClassAttributes2(threadData, _inCache, _inEnv, _inPrefix, _inAttrs, _inImplicit, _inInfo, _clsAttrs, &tmpMeta[0+1], &tmpMeta[0+2]);
goto tmp3_done;
}
case 2: {
modelica_boolean tmp6;
tmp6 = omc_Flags_isSet(threadData, _OMC_LIT277);
if (1 != tmp6) goto goto_2;
omc_Debug_trace(threadData, _OMC_LIT292);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outDae = tmpMeta[0+2];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outDae) { *out_outDae = _outDae; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instClassAttributes(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inPrefix, modelica_metatype _inAttrs, modelica_metatype _inImplicit, modelica_metatype _inInfo, modelica_metatype *out_outEnv, modelica_metatype *out_outDae)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImplicit);
_outCache = omc_Inst_instClassAttributes(threadData, _inCache, _inEnv, _inPrefix, _inAttrs, tmp1, _inInfo, out_outEnv, out_outDae);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instConstraints(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inConstraints, modelica_boolean _inImpl, modelica_metatype *out_outEnv, modelica_metatype *out_outDae, modelica_metatype *out_outState)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype _outState = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _inConstraints;
{
modelica_metatype _env1 = NULL;
modelica_metatype _env2 = NULL;
modelica_metatype _constraints_1 = NULL;
modelica_metatype _constraints_2 = NULL;
modelica_metatype _ci_state = NULL;
modelica_metatype _rest = NULL;
modelica_metatype _constr = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _dae = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 3; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_1)) goto tmp3_end;
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = _inEnv;
tmpMeta[0+2] = _OMC_LIT15;
tmpMeta[0+3] = _inState;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (listEmpty(tmp4_1)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_1);
tmpMeta7 = MMC_CDR(tmp4_1);
_constr = tmpMeta6;
_rest = tmpMeta7;
_cache = omc_InstSection_instConstraint(threadData, _inCache, _inEnv, _inPrefix, _inState, _constr, _inImpl ,&_env1 ,&_constraints_1 ,&_ci_state);
_cache = omc_Inst_instConstraints(threadData, _cache, _env1, _inPrefix, _ci_state, _rest, _inImpl ,&_env2 ,&_constraints_2 ,&_ci_state);
_dae = omc_DAEUtil_joinDaes(threadData, _constraints_1, _constraints_2);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env2;
tmpMeta[0+2] = _dae;
tmpMeta[0+3] = _ci_state;
goto tmp3_done;
}
case 2: {
modelica_boolean tmp8;
tmp8 = omc_Flags_isSet(threadData, _OMC_LIT277);
if (1 != tmp8) goto goto_2;
omc_Debug_trace(threadData, _OMC_LIT293);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outDae = tmpMeta[0+2];
_outState = tmpMeta[0+3];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outDae) { *out_outDae = _outDae; }
if (out_outState) { *out_outState = _outState; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instConstraints(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inConstraints, modelica_metatype _inImpl, modelica_metatype *out_outEnv, modelica_metatype *out_outDae, modelica_metatype *out_outState)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImpl);
_outCache = omc_Inst_instConstraints(threadData, _inCache, _inEnv, _inPrefix, _inState, _inConstraints, tmp1, out_outEnv, out_outDae, out_outState);
return _outCache;
}
DLLExport
modelica_metatype omc_Inst_instList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inPrefix, modelica_metatype _inSets, modelica_metatype _inState, modelica_fnptr _instFunc, modelica_metatype _inTypeALst, modelica_boolean _inImplicit, modelica_boolean _unrollForLoops, modelica_metatype _inGraph, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outGraph)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype _outSets = NULL;
modelica_metatype _outState = NULL;
modelica_metatype _outGraph = NULL;
modelica_metatype tmpMeta[7] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_metatype tmp4_4;modelica_metatype tmp4_5;modelica_metatype tmp4_6;modelica_metatype tmp4_7;modelica_boolean tmp4_8;modelica_metatype tmp4_9;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inIH;
tmp4_4 = _inPrefix;
tmp4_5 = _inSets;
tmp4_6 = _inState;
tmp4_7 = _inTypeALst;
tmp4_8 = _inImplicit;
tmp4_9 = _inGraph;
{
modelica_metatype _env = NULL;
modelica_metatype _env_1 = NULL;
modelica_metatype _env_2 = NULL;
modelica_metatype _pre = NULL;
modelica_metatype _csets = NULL;
modelica_metatype _csets_1 = NULL;
modelica_metatype _csets_2 = NULL;
modelica_metatype _ci_state = NULL;
modelica_metatype _ci_state_1 = NULL;
modelica_metatype _ci_state_2 = NULL;
modelica_boolean _impl;
modelica_metatype _dae1 = NULL;
modelica_metatype _dae2 = NULL;
modelica_metatype _dae = NULL;
modelica_metatype _e = NULL;
modelica_metatype _es = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _graph = NULL;
modelica_metatype _ih = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_7)) goto tmp3_end;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_csets = tmp4_5;
_ci_state = tmp4_6;
_graph = tmp4_9;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _OMC_LIT15;
tmpMeta[0+4] = _csets;
tmpMeta[0+5] = _ci_state;
tmpMeta[0+6] = _graph;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (listEmpty(tmp4_7)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_7);
tmpMeta7 = MMC_CDR(tmp4_7);
_e = tmpMeta6;
_es = tmpMeta7;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_pre = tmp4_4;
_csets = tmp4_5;
_ci_state = tmp4_6;
_impl = tmp4_8;
_graph = tmp4_9;
_cache = (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_instFunc), 2))) ? ((modelica_metatype(*)(threadData_t*, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype)) (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_instFunc), 1)))) (threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_instFunc), 2))), _cache, _env, _ih, _pre, _csets, _ci_state, _e, mmc_mk_boolean(_impl), mmc_mk_boolean(_unrollForLoops), _graph ,&_env_1 ,&_ih ,&_dae1 ,&_csets_1 ,&_ci_state_1 ,&_graph) : ((modelica_metatype(*)(threadData_t*, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype, modelica_metatype)) (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_instFunc), 1)))) (threadData, _cache, _env, _ih, _pre, _csets, _ci_state, _e, mmc_mk_boolean(_impl), mmc_mk_boolean(_unrollForLoops), _graph ,&_env_1 ,&_ih ,&_dae1 ,&_csets_1 ,&_ci_state_1 ,&_graph);
_cache = omc_Inst_instList(threadData, _cache, _env_1, _ih, _pre, _csets_1, _ci_state_1, ((modelica_fnptr) _instFunc), _es, _impl, _unrollForLoops, _graph ,&_env_2 ,&_ih ,&_dae2 ,&_csets_2 ,&_ci_state_2 ,&_graph);
_dae = omc_DAEUtil_joinDaes(threadData, _dae1, _dae2);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env_2;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _dae;
tmpMeta[0+4] = _csets_2;
tmpMeta[0+5] = _ci_state_2;
tmpMeta[0+6] = _graph;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outDae = tmpMeta[0+3];
_outSets = tmpMeta[0+4];
_outState = tmpMeta[0+5];
_outGraph = tmpMeta[0+6];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outDae) { *out_outDae = _outDae; }
if (out_outSets) { *out_outSets = _outSets; }
if (out_outState) { *out_outState = _outState; }
if (out_outGraph) { *out_outGraph = _outGraph; }
return _outCache;
}
modelica_metatype boxptr_Inst_instList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inPrefix, modelica_metatype _inSets, modelica_metatype _inState, modelica_fnptr _instFunc, modelica_metatype _inTypeALst, modelica_metatype _inImplicit, modelica_metatype _unrollForLoops, modelica_metatype _inGraph, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outGraph)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImplicit);
tmp2 = mmc_unbox_integer(_unrollForLoops);
_outCache = omc_Inst_instList(threadData, _inCache, _inEnv, _inIH, _inPrefix, _inSets, _inState, _instFunc, _inTypeALst, tmp1, tmp2, _inGraph, out_outEnv, out_outIH, out_outDae, out_outSets, out_outState, out_outGraph);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_makeFullyQualifiedIdentCheckBuiltin(threadData_t *threadData, modelica_string _ident, modelica_boolean *out_isKnownBuiltin)
{
modelica_metatype _path = NULL;
modelica_boolean _isKnownBuiltin;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_isKnownBuiltin = 1;
{
modelica_string tmp4_1;
tmp4_1 = _ident;
{
int tmp4;
{
switch (MMC_SWITCH_CAST(stringHashDjb2Mod(tmp4_1,64))) {
case 37 /* Boolean */: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT294), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT296;
goto tmp3_done;
}
case 51 /* Integer */: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT297), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT299;
goto tmp3_done;
}
case 41 /* Real */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT300), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT302;
goto tmp3_done;
}
case 28 /* String */: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT303), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT305;
goto tmp3_done;
}
case 60 /* EnumType */: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT306), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT308;
goto tmp3_done;
}
case 23 /* assert */: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT309), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT310;
goto tmp3_done;
}
case 16 /* reinit */: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT311), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT312;
goto tmp3_done;
}
case 31 /* smooth */: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT217), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
tmpMeta1 = _OMC_LIT218;
goto tmp3_done;
}
case 33 /* list */: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT313), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
_isKnownBuiltin = omc_Config_acceptMetaModelicaGrammar(threadData);
tmpMeta1 = _OMC_LIT314;
goto tmp3_done;
}
case 62 /* Option */: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT315), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
_isKnownBuiltin = omc_Config_acceptMetaModelicaGrammar(threadData);
tmpMeta1 = _OMC_LIT316;
goto tmp3_done;
}
case 47 /* tuple */: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT317), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
_isKnownBuiltin = omc_Config_acceptMetaModelicaGrammar(threadData);
tmpMeta1 = _OMC_LIT318;
goto tmp3_done;
}
case 27 /* polymorphic */: {
if (11 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT319), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
_isKnownBuiltin = omc_Config_acceptMetaModelicaGrammar(threadData);
tmpMeta1 = _OMC_LIT320;
goto tmp3_done;
}
case 36 /* array */: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT321), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_default;
_isKnownBuiltin = omc_Config_acceptMetaModelicaGrammar(threadData);
tmpMeta1 = _OMC_LIT322;
goto tmp3_done;
}
default:
tmp3_default: OMC_LABEL_UNUSED; {
_isKnownBuiltin = 0;
tmpMeta1 = _OMC_LIT259;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_path = tmpMeta1;
_return: OMC_LABEL_UNUSED
if (out_isKnownBuiltin) { *out_isKnownBuiltin = _isKnownBuiltin; }
return _path;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_makeFullyQualifiedIdentCheckBuiltin(threadData_t *threadData, modelica_metatype _ident, modelica_metatype *out_isKnownBuiltin)
{
modelica_boolean _isKnownBuiltin;
modelica_metatype _path = NULL;
_path = omc_Inst_makeFullyQualifiedIdentCheckBuiltin(threadData, _ident, &_isKnownBuiltin);
if (out_isKnownBuiltin) { *out_isKnownBuiltin = mmc_mk_icon(_isKnownBuiltin); }
return _path;
}
DLLExport
modelica_metatype omc_Inst_makeFullyQualifiedIdent(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_string _ident, modelica_metatype _inPath, modelica_metatype *out_outPath)
{
jmp_buf *old_mmc_jumper = threadData->mmc_jumper;
modelica_metatype _outCache = NULL;
modelica_metatype _outPath = NULL;
modelica_boolean _isKnownBuiltin;
modelica_metatype tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outPath = omc_Inst_makeFullyQualifiedIdentCheckBuiltin(threadData, _ident ,&_isKnownBuiltin);
if(_isKnownBuiltin)
{
_outCache = _inCache;
goto _return;
}
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_string tmp4_3;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _ident;
{
modelica_metatype _env = NULL;
modelica_metatype _env_1 = NULL;
modelica_metatype _path_2 = NULL;
modelica_metatype _path3 = NULL;
modelica_string _s = NULL;
modelica_metatype _cache = NULL;
modelica_string _name = NULL;
modelica_metatype _r = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 6; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
_cache = tmp4_1;
_env = tmp4_2;
tmpMeta9 = omc_Lookup_lookupClassIdent(threadData, _cache, _env, _ident, mmc_mk_none(), &tmpMeta6, &tmpMeta8);
_cache = tmpMeta9;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,2,8) == 0) goto goto_2;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
_name = tmpMeta7;
_env_1 = tmpMeta8;
_path_2 = omc_Inst_makeFullyQualified2(threadData, _env_1, _name, _OMC_LIT259);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = omc_AbsynUtil_makeFullyQualified(threadData, _path_2);
goto tmp3_done;
}
case 1: {
modelica_boolean tmp10;
modelica_boolean tmp11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
_cache = tmp4_1;
_env = tmp4_2;
_s = tmp4_3;
_r = omc_FGraph_lastScopeRef(threadData, _env);
tmp10 = omc_FNode_isRefTop(threadData, _r);
if (0 != tmp10) goto goto_2;
_name = omc_FNode_refName(threadData, _r);
tmp11 = (stringEqual(_name, _s));
if (1 != tmp11) goto goto_2;
tmpMeta12 = omc_FGraph_getScopePath(threadData, _env);
if (optionNone(tmpMeta12)) goto goto_2;
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta12), 1));
_path_2 = tmpMeta13;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = omc_AbsynUtil_makeFullyQualified(threadData, _path_2);
goto tmp3_done;
}
case 2: {
_cache = tmp4_1;
_env = tmp4_2;
_s = tmp4_3;
_cache = omc_Lookup_lookupTypeIdent(threadData, _cache, _env, _s, mmc_mk_none() ,NULL ,&_env_1);
_path_2 = omc_Inst_makeFullyQualified2(threadData, _env_1, _s, _inPath);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = omc_AbsynUtil_makeFullyQualified(threadData, _path_2);
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta14;
_cache = tmp4_1;
_env = tmp4_2;
tmpMeta14 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Lookup_lookupVarInternalIdent(threadData, _cache, _env, _ident, tmpMeta14, _OMC_LIT323 ,NULL ,NULL ,NULL ,NULL ,NULL ,&_env ,NULL ,&_name);
_path3 = omc_Inst_makeFullyQualified2(threadData, _env, _name, _OMC_LIT259);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = omc_AbsynUtil_makeFullyQualified(threadData, _path3);
goto tmp3_done;
}
case 4: {
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
_cache = tmp4_1;
_env = tmp4_2;
tmpMeta15 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta16 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Lookup_lookupVarInPackagesIdent(threadData, _cache, _env, _ident, tmpMeta15, tmpMeta16, omc_Mutable_create(threadData, mmc_mk_boolean(0)) ,&_env ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,&_name);
_path3 = omc_Inst_makeFullyQualified2(threadData, _env, _name, _OMC_LIT259);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = omc_AbsynUtil_makeFullyQualified(threadData, _path3);
goto tmp3_done;
}
case 5: {
modelica_metatype tmpMeta17;
{
modelica_metatype tmp20_1;
tmp20_1 = _inPath;
{
volatile mmc_switch_type tmp20;
int tmp21;
tmp20 = 0;
for (; tmp20 < 2; tmp20++) {
switch (MMC_SWITCH_CAST(tmp20)) {
case 0: {
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
if (mmc__uniontype__metarecord__typedef__equal(tmp20_1,1,1) == 0) goto tmp19_end;
tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp20_1), 2));
if (0 != MMC_STRLEN(tmpMeta22) || strcmp(MMC_STRINGDATA(_OMC_LIT11), MMC_STRINGDATA(tmpMeta22)) != 0) goto tmp19_end;
tmpMeta23 = mmc_mk_box2(4, &Absyn_Path_IDENT__desc, _ident);
tmpMeta17 = tmpMeta23;
goto tmp19_done;
}
case 1: {
tmpMeta17 = _inPath;
goto tmp19_done;
}
}
goto tmp19_end;
tmp19_end: ;
}
goto goto_18;
goto_18:;
goto goto_2;
goto tmp19_done;
tmp19_done:;
}
}tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = tmpMeta17;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 6) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outPath = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outPath) { *out_outPath = _outPath; }
threadData->mmc_jumper = old_mmc_jumper;
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_makeFullyQualifiedFromQual(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _inEnv, modelica_metatype __omcQ_24in_5Fpath, modelica_metatype *out_path)
{
modelica_metatype _cache = NULL;
modelica_metatype _path = NULL;
modelica_metatype tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
_path = __omcQ_24in_5Fpath;
{
{
modelica_metatype _env = NULL;
modelica_metatype _env_1 = NULL;
modelica_metatype _path_2 = NULL;
modelica_metatype _path3 = NULL;
modelica_metatype _crPath = NULL;
modelica_string _name = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 4; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
tmpMeta9 = omc_Lookup_lookupClass(threadData, _cache, _inEnv, _path, mmc_mk_none(), &tmpMeta6, &tmpMeta8);
_cache = tmpMeta9;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,2,8) == 0) goto goto_2;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
_name = tmpMeta7;
_env_1 = tmpMeta8;
_path_2 = omc_Inst_makeFullyQualified2(threadData, _env_1, _name, _OMC_LIT259);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = omc_AbsynUtil_makeFullyQualified(threadData, _path_2);
goto tmp3_done;
}
case 1: {
_crPath = omc_ComponentReference_pathToCref(threadData, _path);
_cache = omc_Lookup_lookupVarInternal(threadData, _cache, _inEnv, _crPath, _OMC_LIT323 ,NULL ,NULL ,NULL ,NULL ,NULL ,&_env ,NULL ,&_name);
_path3 = omc_Inst_makeFullyQualified2(threadData, _env, _name, _OMC_LIT259);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = omc_AbsynUtil_makeFullyQualified(threadData, _path3);
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta10;
_crPath = omc_ComponentReference_pathToCref(threadData, _path);
tmpMeta10 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Lookup_lookupVarInPackages(threadData, _cache, _inEnv, _crPath, tmpMeta10, omc_Mutable_create(threadData, mmc_mk_boolean(0)) ,&_env ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,&_name);
_path3 = omc_Inst_makeFullyQualified2(threadData, _env, _name, _OMC_LIT259);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = omc_AbsynUtil_makeFullyQualified(threadData, _path3);
goto tmp3_done;
}
case 3: {
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _path;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 4) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_cache = tmpMeta[0+0];
_path = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_path) { *out_path = _path; }
return _cache;
}
DLLExport
modelica_metatype omc_Inst_makeFullyQualified(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype _inEnv, modelica_metatype __omcQ_24in_5Fpath, modelica_metatype *out_path)
{
modelica_metatype _cache = NULL;
modelica_metatype _path = NULL;
modelica_metatype tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
_path = __omcQ_24in_5Fpath;
{
modelica_metatype tmp4_1;
tmp4_1 = _path;
{
int tmp4;
{
switch (MMC_SWITCH_CAST(valueConstructor(tmp4_1))) {
case 4: {
tmpMeta[0+0] = omc_Inst_makeFullyQualifiedIdent(threadData, _cache, _inEnv, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_path), 2))), _path, &tmpMeta[0+1]);
goto tmp3_done;
}
case 5: {
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _path;
goto tmp3_done;
}
case 3: {
tmpMeta[0+0] = omc_Inst_makeFullyQualifiedFromQual(threadData, _cache, _inEnv, _path, &tmpMeta[0+1]);
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_cache = tmpMeta[0+0];
_path = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_path) { *out_path = _path; }
return _cache;
}
DLLExport
modelica_metatype omc_Inst_makeEnvFromProgram(threadData_t *threadData, modelica_metatype _prog, modelica_metatype *out_env_1)
{
modelica_metatype _outCache = NULL;
modelica_metatype _env_1 = NULL;
modelica_metatype _env = NULL;
modelica_metatype _cache = NULL;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = omc_Builtin_initialGraph(threadData, omc_FCore_emptyCache(threadData) ,&_env);
_env_1 = omc_FGraphBuildEnv_mkProgramGraph(threadData, _prog, _OMC_LIT267, _env);
_outCache = _cache;
_return: OMC_LABEL_UNUSED
if (out_env_1) { *out_env_1 = _env_1; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_updateComponentInEnv3(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inMod, modelica_boolean _inImpl, modelica_metatype _inModScope, modelica_metatype _inInfo, modelica_metatype *out_outMod)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outMod = NULL;
modelica_metatype tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
{
modelica_metatype _mod = NULL;
modelica_metatype _cache = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT324);
_cache = omc_Mod_elabMod(threadData, _inCache, _inEnv, _inIH, _OMC_LIT8, _inMod, _inImpl, _inModScope, _inInfo ,&_mod);
omc_ErrorExt_rollBack(threadData, _OMC_LIT324);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _mod;
goto tmp3_done;
}
case 1: {
omc_ErrorExt_rollBack(threadData, _OMC_LIT324);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 2) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outMod = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outMod) { *out_outMod = _outMod; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_updateComponentInEnv3(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inMod, modelica_metatype _inImpl, modelica_metatype _inModScope, modelica_metatype _inInfo, modelica_metatype *out_outMod)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImpl);
_outCache = omc_Inst_updateComponentInEnv3(threadData, _inCache, _inEnv, _inIH, _inMod, tmp1, _inModScope, _inInfo, out_outMod);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_updateComponentInEnv2__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inClsEnv, modelica_metatype _inIH, modelica_metatype _inPrefix, modelica_metatype _inPath, modelica_string _inName, modelica_metatype _inSubscripts, modelica_metatype _inClass, modelica_metatype _inAttr, modelica_metatype _inPrefixes, modelica_metatype _inDAttr, modelica_metatype _inInfo, modelica_metatype _inSMod, modelica_metatype _inClsMod, modelica_metatype _inMod, modelica_metatype _inCref, modelica_metatype _inState, modelica_boolean _inImpl, modelica_metatype _inUpdatedComps, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUpdatedComps)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outUpdatedComps = NULL;
modelica_metatype _smod = NULL;
modelica_metatype _mod = NULL;
modelica_metatype _mod1 = NULL;
modelica_metatype _mod2 = NULL;
modelica_metatype _class_mod = NULL;
modelica_metatype _comp_mod = NULL;
modelica_metatype _eq = NULL;
modelica_metatype _own_cref = NULL;
modelica_metatype _dims = NULL;
modelica_metatype _cls_env = NULL;
modelica_metatype _comp_env = NULL;
modelica_metatype _cls = NULL;
modelica_metatype _ty = NULL;
modelica_metatype _binding = NULL;
modelica_metatype _var = NULL;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _inCache;
_outEnv = _inEnv;
_outIH = _inIH;
_outUpdatedComps = _inUpdatedComps;
{
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp2_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
modelica_metatype tmpMeta5;
modelica_integer tmp6;
tmpMeta5 = omc_BaseHashTable_get(threadData, _inCref, _inUpdatedComps);
tmp6 = mmc_unbox_integer(tmpMeta5);
if (1 != tmp6) goto goto_1;
goto tmp2_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
_smod = omc_SCodeUtil_mergeModifiers(threadData, _inSMod, omc_SCodeUtil_getConstrainedByModifiers(threadData, _inPrefixes));
tmpMeta7 = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, _inName);
_outCache = omc_Inst_updateComponentInEnv3(threadData, _outCache, _outEnv, _outIH, _smod, _inImpl, tmpMeta7, _inInfo ,&_mod1);
_class_mod = omc_Mod_lookupModificationP(threadData, _inMod, _inPath);
_mod2 = omc_Mod_merge(threadData, _class_mod, _mod1, _inName, 1);
_mod2 = omc_Mod_merge(threadData, _inClsMod, _mod2, _inName, 1);
_outCache = omc_Mod_updateMod(threadData, _outCache, _outEnv, _outIH, _OMC_LIT8, _mod2, _inImpl, _inInfo ,&_mod2);
_mod = (omc_InstUtil_redeclareBasicType(threadData, _inClsMod)?_mod1:_mod2);
_eq = omc_Mod_modEquation(threadData, _mod);
tmpMeta8 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta9 = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, _inName, tmpMeta8);
_own_cref = tmpMeta9;
tmpMeta10 = MMC_REFSTRUCTLIT(mmc_nil);
_outCache = omc_InstUtil_elabArraydim(threadData, _outCache, _outEnv, _own_cref, _inPath, _inSubscripts, _eq, _inImpl, 1, 0, _inPrefix, _inInfo, tmpMeta10 ,&_dims);
_cls_env = omc_FGraph_createVersionScope(threadData, _outEnv, _inName, _inPrefix, _mod, _inClsEnv, _inClass, _outIH ,&_cls ,&_outIH);
tmpMeta11 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta12 = MMC_REFSTRUCTLIT(mmc_nil);
_outCache = omc_InstVar_instVar(threadData, _outCache, _cls_env, _outIH, _OMC_LIT6, _inState, _mod, _inPrefix, _inName, _cls, _inAttr, _inPrefixes, _dims, tmpMeta11, tmpMeta12, _inImpl, _OMC_LIT261, _inInfo, _OMC_LIT10, _OMC_LIT14, _outEnv ,&_comp_env ,&_outIH ,NULL ,NULL ,NULL ,&_ty, NULL);
_outCache = omc_InstBinding_makeBinding(threadData, _outCache, _outEnv, _inAttr, _mod, _ty, _inPrefix, _inName, _inInfo ,&_binding);
tmpMeta13 = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _inName, _inDAttr, _ty, _binding, mmc_mk_boolean(0), mmc_mk_none());
_var = tmpMeta13;
_outEnv = omc_FGraph_updateComp(threadData, _outEnv, _var, _OMC_LIT263, _comp_env);
tmpMeta14 = mmc_mk_box2(0, _inCref, mmc_mk_integer(((modelica_integer) 1)));
_outUpdatedComps = omc_BaseHashTable_add(threadData, tmpMeta14, _outUpdatedComps);
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
tmp2_done:
(void)tmp3;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp2_done2;
goto_1:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp3 < 2) {
goto tmp2_top;
}
MMC_THROW_INTERNAL();
tmp2_done2:;
}
}
;
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outUpdatedComps) { *out_outUpdatedComps = _outUpdatedComps; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_updateComponentInEnv2__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inClsEnv, modelica_metatype _inIH, modelica_metatype _inPrefix, modelica_metatype _inPath, modelica_metatype _inName, modelica_metatype _inSubscripts, modelica_metatype _inClass, modelica_metatype _inAttr, modelica_metatype _inPrefixes, modelica_metatype _inDAttr, modelica_metatype _inInfo, modelica_metatype _inSMod, modelica_metatype _inClsMod, modelica_metatype _inMod, modelica_metatype _inCref, modelica_metatype _inState, modelica_metatype _inImpl, modelica_metatype _inUpdatedComps, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUpdatedComps)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImpl);
_outCache = omc_Inst_updateComponentInEnv2__dispatch(threadData, _inCache, _inEnv, _inClsEnv, _inIH, _inPrefix, _inPath, _inName, _inSubscripts, _inClass, _inAttr, _inPrefixes, _inDAttr, _inInfo, _inSMod, _inClsMod, _inMod, _inCref, _inState, tmp1, _inUpdatedComps, out_outEnv, out_outIH, out_outUpdatedComps);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_updateComponentInEnv2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _cenv, modelica_metatype _inIH, modelica_metatype _pre, modelica_metatype _path, modelica_string _name, modelica_metatype _ad, modelica_metatype _cl, modelica_metatype _attr, modelica_metatype _inPrefixes, modelica_metatype _dattr, modelica_metatype _info, modelica_metatype _m, modelica_metatype _cmod, modelica_metatype _mod, modelica_metatype _cref, modelica_metatype _ci_state, modelica_boolean _impl, modelica_metatype _inUpdatedComps, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUpdatedComps)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outUpdatedComps = NULL;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp2_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT325);
_outCache = omc_Inst_updateComponentInEnv2__dispatch(threadData, _inCache, _inEnv, _cenv, _inIH, _pre, _path, _name, _ad, _cl, _attr, _inPrefixes, _dattr, _info, _m, _cmod, _mod, _cref, _ci_state, _impl, _inUpdatedComps ,&_outEnv ,&_outIH ,&_outUpdatedComps);
omc_ErrorExt_delCheckpoint(threadData, _OMC_LIT325);
goto tmp2_done;
}
case 1: {
omc_ErrorExt_rollBack(threadData, _OMC_LIT325);
goto goto_1;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
tmp2_done:
(void)tmp3;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp2_done2;
goto_1:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp3 < 2) {
goto tmp2_top;
}
MMC_THROW_INTERNAL();
tmp2_done2:;
}
}
;
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outUpdatedComps) { *out_outUpdatedComps = _outUpdatedComps; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_updateComponentInEnv2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _cenv, modelica_metatype _inIH, modelica_metatype _pre, modelica_metatype _path, modelica_metatype _name, modelica_metatype _ad, modelica_metatype _cl, modelica_metatype _attr, modelica_metatype _inPrefixes, modelica_metatype _dattr, modelica_metatype _info, modelica_metatype _m, modelica_metatype _cmod, modelica_metatype _mod, modelica_metatype _cref, modelica_metatype _ci_state, modelica_metatype _impl, modelica_metatype _inUpdatedComps, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUpdatedComps)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_impl);
_outCache = omc_Inst_updateComponentInEnv2(threadData, _inCache, _inEnv, _cenv, _inIH, _pre, _path, _name, _ad, _cl, _attr, _inPrefixes, _dattr, _info, _m, _cmod, _mod, _cref, _ci_state, tmp1, _inUpdatedComps, out_outEnv, out_outIH, out_outUpdatedComps);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_updateComponentInEnv(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _pre, modelica_metatype _mod, modelica_metatype _cref, modelica_metatype _inCIState, modelica_boolean _impl, modelica_metatype _inUpdatedComps, modelica_metatype _currentCref, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUpdatedComps)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outUpdatedComps = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inIH;
tmp4_4 = _mod;
{
modelica_string _n = NULL;
modelica_string _id = NULL;
modelica_string _name = NULL;
modelica_metatype _ct = NULL;
modelica_metatype _io = NULL;
modelica_metatype _attr = NULL;
modelica_metatype _ad = NULL;
modelica_metatype _prl1 = NULL;
modelica_metatype _var1 = NULL;
modelica_metatype _dir = NULL;
modelica_metatype _t = NULL;
modelica_metatype _m = NULL;
modelica_metatype _cmod = NULL;
modelica_metatype _mods = NULL;
modelica_metatype _cl = NULL;
modelica_metatype _cenv = NULL;
modelica_metatype _env2 = NULL;
modelica_metatype _env_1 = NULL;
modelica_metatype _crefs = NULL;
modelica_metatype _crefs2 = NULL;
modelica_metatype _crefs3 = NULL;
modelica_metatype _crefs_1 = NULL;
modelica_metatype _crefs_2 = NULL;
modelica_metatype _cond = NULL;
modelica_metatype _is = NULL;
modelica_metatype _info = NULL;
modelica_metatype _ih = NULL;
modelica_metatype _pf = NULL;
modelica_metatype _visibility = NULL;
modelica_metatype _smod = NULL;
modelica_metatype _daeMod = NULL;
modelica_metatype _prefixes = NULL;
modelica_metatype _attributes = NULL;
modelica_metatype _env = NULL;
modelica_metatype _idENV = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _updatedComps = NULL;
modelica_metatype _ci_state = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 7; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_boolean tmp13;
modelica_boolean tmp14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
modelica_metatype tmpMeta29;
modelica_metatype tmpMeta30;
modelica_metatype tmpMeta31;
modelica_metatype tmpMeta32;
modelica_metatype tmpMeta33;
modelica_metatype tmpMeta34;
modelica_metatype tmpMeta35;
modelica_metatype tmpMeta36;
modelica_metatype tmpMeta37;
modelica_metatype tmpMeta38;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,1,4) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,3,8) == 0) goto tmp3_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 3));
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 4));
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 6));
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 9));
_name = tmpMeta7;
_prefixes = tmpMeta8;
_visibility = tmpMeta9;
_attributes = tmpMeta10;
_smod = tmpMeta11;
_info = tmpMeta12;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
tmp4 += 1;
_id = omc_AbsynUtil_crefFirstIdent(threadData, _cref);
tmp13 = (stringEqual(_id, _name));
if (1 != tmp13) goto goto_2;
tmp14 = valueEq(_smod, _OMC_LIT16);
if (0 != tmp14) goto goto_2;
tmpMeta16 = omc_Lookup_lookupIdentLocal(threadData, _cache, _env, _name, &tmpMeta15, NULL, NULL, NULL, NULL);
_cache = tmpMeta16;
tmpMeta17 = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, _name);
_cache = omc_Mod_elabMod(threadData, _cache, _env, _ih, _pre, _smod, _impl, tmpMeta17, _info ,&_daeMod);
_mods = _daeMod;
_attr = _attributes;
_m = _smod;
_cmod = _OMC_LIT7;
_pf = _prefixes;
_io = omc_SCodeUtil_prefixesInnerOuter(threadData, _pf);
tmpMeta18 = _attr;
tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta18), 2));
tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta18), 3));
tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta18), 4));
tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta18), 5));
tmpMeta23 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta18), 6));
_ad = tmpMeta19;
_ct = tmpMeta20;
_prl1 = tmpMeta21;
_var1 = tmpMeta22;
_dir = tmpMeta23;
tmpMeta31 = omc_Lookup_lookupIdent(threadData, _cache, _env, _id, NULL, &tmpMeta24, NULL, NULL, &tmpMeta30);
_cache = tmpMeta31;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta24,3,8) == 0) goto goto_2;
tmpMeta25 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta24), 2));
tmpMeta26 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta24), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta26,0,2) == 0) goto goto_2;
tmpMeta27 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta26), 2));
tmpMeta28 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta24), 8));
tmpMeta29 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta24), 9));
_n = tmpMeta25;
_t = tmpMeta27;
_cond = tmpMeta28;
_info = tmpMeta29;
_idENV = tmpMeta30;
_ci_state = omc_InstUtil_updateClassInfState(threadData, _cache, _idENV, _env, _inCIState);
_cache = omc_Lookup_lookupClass(threadData, _cache, _env, _t, mmc_mk_none() ,&_cl ,&_cenv);
_updatedComps = omc_Inst_getUpdatedCompsHashTable(threadData, _inUpdatedComps);
_mods = omc_InstUtil_noModForUpdatedComponents(threadData, _var1, _updatedComps, _cref, _mods, _cmod, _m ,&_cmod ,&_m);
_crefs = omc_InstUtil_getCrefFromMod(threadData, _m);
_crefs2 = omc_InstUtil_getCrefFromDim(threadData, _ad);
_crefs3 = omc_InstUtil_getCrefFromCond(threadData, _cond);
_crefs_1 = listAppend(_crefs, listAppend(_crefs2, _crefs3));
_crefs_2 = omc_InstUtil_removeCrefFromCrefs(threadData, _crefs_1, _cref);
tmpMeta32 = mmc_mk_box2(0, _cref, mmc_mk_integer(((modelica_integer) 0)));
_updatedComps = omc_BaseHashTable_add(threadData, tmpMeta32, _updatedComps);
tmpMeta37 = omc_Inst_updateComponentsInEnv2(threadData, _cache, _env, _ih, _pre, _OMC_LIT7, _crefs_2, _ci_state, _impl, mmc_mk_some(_updatedComps), mmc_mk_some(_cref), &tmpMeta33, &tmpMeta34, &tmpMeta35);
_cache = tmpMeta37;
if (optionNone(tmpMeta35)) goto goto_2;
tmpMeta36 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta35), 1));
_env2 = tmpMeta33;
_ih = tmpMeta34;
_updatedComps = tmpMeta36;
tmpMeta38 = mmc_mk_box7(3, &DAE_Attributes_ATTR__desc, omc_DAEUtil_toConnectorTypeNoState(threadData, _ct, mmc_mk_none()), _prl1, _var1, _dir, _io, _visibility);
_cache = omc_Inst_updateComponentInEnv2(threadData, _cache, _env2, _cenv, _ih, _pre, _t, _n, _ad, _cl, _attr, _pf, tmpMeta38, _info, _m, _cmod, _mods, _cref, _ci_state, _impl, _updatedComps ,&_env_1 ,&_ih ,&_updatedComps);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env_1;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = mmc_mk_some(_updatedComps);
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta39;
modelica_metatype tmpMeta40;
modelica_boolean tmp41;
modelica_metatype tmpMeta42;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,1,4) == 0) goto tmp3_end;
tmpMeta39 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta39,2,8) == 0) goto tmp3_end;
tmpMeta40 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta39), 2));
_name = tmpMeta40;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_id = omc_AbsynUtil_crefFirstIdent(threadData, _cref);
tmp41 = (stringEqual(_name, _id));
if (1 != tmp41) goto goto_2;
_cl = omc_Lookup_lookupClassLocal(threadData, _env, _name, NULL);
_env = omc_FGraph_updateClass(threadData, _env, omc_SCodeUtil_mergeWithOriginal(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_mod), 4))), _cl), _pre, _mod, _OMC_LIT326, _env);
_updatedComps = omc_Inst_getUpdatedCompsHashTable(threadData, _inUpdatedComps);
tmpMeta42 = mmc_mk_box2(0, _cref, mmc_mk_integer(((modelica_integer) 0)));
_updatedComps = omc_BaseHashTable_add(threadData, tmpMeta42, _updatedComps);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = mmc_mk_some(_updatedComps);
goto tmp3_done;
}
case 2: {
modelica_boolean tmp43;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_id = omc_AbsynUtil_crefFirstIdent(threadData, _cref);
_cache = omc_Lookup_lookupIdent(threadData, _cache, _env, _id ,NULL ,NULL ,NULL ,&_is ,NULL);
tmp43 = omc_FCore_isTyped(threadData, _is);
if (1 != tmp43) goto goto_2;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _inUpdatedComps;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta44;
modelica_metatype tmpMeta45;
modelica_metatype tmpMeta46;
modelica_metatype tmpMeta47;
modelica_metatype tmpMeta48;
modelica_metatype tmpMeta49;
modelica_metatype tmpMeta50;
modelica_metatype tmpMeta51;
modelica_metatype tmpMeta52;
modelica_metatype tmpMeta53;
modelica_metatype tmpMeta54;
modelica_metatype tmpMeta55;
modelica_metatype tmpMeta56;
modelica_metatype tmpMeta57;
modelica_metatype tmpMeta58;
modelica_metatype tmpMeta59;
modelica_metatype tmpMeta60;
modelica_metatype tmpMeta61;
modelica_metatype tmpMeta62;
modelica_metatype tmpMeta63;
modelica_metatype tmpMeta64;
modelica_metatype tmpMeta65;
modelica_metatype tmpMeta66;
modelica_metatype tmpMeta67;
modelica_metatype tmpMeta68;
modelica_metatype tmpMeta69;
modelica_metatype tmpMeta70;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_mods = tmp4_4;
_id = omc_AbsynUtil_crefFirstIdent(threadData, _cref);
tmpMeta62 = omc_Lookup_lookupIdent(threadData, _cache, _env, _id, NULL, &tmpMeta44, &tmpMeta60, NULL, &tmpMeta61);
_cache = tmpMeta62;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta44,3,8) == 0) goto goto_2;
tmpMeta45 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta44), 2));
tmpMeta46 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta44), 3));
tmpMeta47 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta46), 2));
tmpMeta48 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta46), 5));
tmpMeta49 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta44), 4));
tmpMeta50 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta49), 2));
tmpMeta51 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta49), 3));
tmpMeta52 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta49), 4));
tmpMeta53 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta49), 5));
tmpMeta54 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta49), 6));
tmpMeta55 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta44), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta55,0,2) == 0) goto goto_2;
tmpMeta56 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta55), 2));
tmpMeta57 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta44), 6));
tmpMeta58 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta44), 8));
tmpMeta59 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta44), 9));
_n = tmpMeta45;
_pf = tmpMeta46;
_visibility = tmpMeta47;
_io = tmpMeta48;
_attr = tmpMeta49;
_ad = tmpMeta50;
_ct = tmpMeta51;
_prl1 = tmpMeta52;
_var1 = tmpMeta53;
_dir = tmpMeta54;
_t = tmpMeta56;
_m = tmpMeta57;
_cond = tmpMeta58;
_info = tmpMeta59;
_cmod = tmpMeta60;
_idENV = tmpMeta61;
_ci_state = omc_InstUtil_updateClassInfState(threadData, _cache, _idENV, _env, _inCIState);
_cache = omc_Lookup_lookupClass(threadData, _cache, _env, _t, mmc_mk_none() ,&_cl ,&_cenv);
_updatedComps = omc_Inst_getUpdatedCompsHashTable(threadData, _inUpdatedComps);
_mods = omc_InstUtil_noModForUpdatedComponents(threadData, _var1, _updatedComps, _cref, _mods, _cmod, _m ,&_cmod ,&_m);
tmpMeta63 = mmc_mk_cons(omc_InstUtil_getCrefFromMod(threadData, _m), mmc_mk_cons(omc_InstUtil_getCrefFromDim(threadData, _ad), mmc_mk_cons(omc_InstUtil_getCrefFromCond(threadData, _cond), mmc_mk_cons(omc_Mod_getUntypedCrefs(threadData, _cmod), MMC_REFSTRUCTLIT(mmc_nil)))));
_crefs = omc_List_flatten(threadData, tmpMeta63);
_crefs_2 = omc_InstUtil_removeCrefFromCrefs(threadData, _crefs, _cref);
_crefs_2 = omc_InstUtil_removeOptCrefFromCrefs(threadData, _crefs_2, _currentCref);
tmpMeta64 = mmc_mk_box2(0, _cref, mmc_mk_integer(((modelica_integer) 0)));
_updatedComps = omc_BaseHashTable_add(threadData, tmpMeta64, _updatedComps);
tmpMeta69 = omc_Inst_updateComponentsInEnv2(threadData, _cache, _env, _ih, _pre, _mods, _crefs_2, _ci_state, _impl, mmc_mk_some(_updatedComps), mmc_mk_some(_cref), &tmpMeta65, &tmpMeta66, &tmpMeta67);
_cache = tmpMeta69;
if (optionNone(tmpMeta67)) goto goto_2;
tmpMeta68 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta67), 1));
_env2 = tmpMeta65;
_ih = tmpMeta66;
_updatedComps = tmpMeta68;
tmpMeta70 = mmc_mk_box7(3, &DAE_Attributes_ATTR__desc, omc_DAEUtil_toConnectorTypeNoState(threadData, _ct, mmc_mk_none()), _prl1, _var1, _dir, _io, _visibility);
_cache = omc_Inst_updateComponentInEnv2(threadData, _cache, _env2, _cenv, _ih, _pre, _t, _n, _ad, _cl, _attr, _pf, tmpMeta70, _info, _m, _cmod, _mods, _cref, _ci_state, _impl, _updatedComps ,&_env_1 ,&_ih ,&_updatedComps);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env_1;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = mmc_mk_some(_updatedComps);
goto tmp3_done;
}
case 4: {
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _inUpdatedComps;
goto tmp3_done;
}
case 5: {
modelica_boolean tmp71;
modelica_metatype tmpMeta72;
modelica_metatype tmpMeta73;
modelica_metatype tmpMeta74;
modelica_metatype tmpMeta75;
_env = tmp4_2;
tmp71 = omc_Flags_isSet(threadData, _OMC_LIT277);
if (1 != tmp71) goto goto_2;
tmpMeta72 = stringAppend(_OMC_LIT327,omc_Dump_printComponentRefStr(threadData, _cref));
omc_Debug_traceln(threadData, tmpMeta72);
tmpMeta73 = stringAppend(_OMC_LIT328,omc_Mod_printModStr(threadData, _mod));
omc_Debug_traceln(threadData, tmpMeta73);
tmpMeta74 = stringAppend(_OMC_LIT329,omc_FGraph_printGraphPathStr(threadData, _env));
omc_Debug_traceln(threadData, tmpMeta74);
tmpMeta75 = stringAppend(_OMC_LIT330,omc_PrefixUtil_printPrefixStr(threadData, _pre));
omc_Debug_traceln(threadData, tmpMeta75);
goto goto_2;
goto tmp3_done;
}
case 6: {
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = _inEnv;
tmpMeta[0+2] = _inIH;
tmpMeta[0+3] = _inUpdatedComps;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 7) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outUpdatedComps = tmpMeta[0+3];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outUpdatedComps) { *out_outUpdatedComps = _outUpdatedComps; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_updateComponentInEnv(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _pre, modelica_metatype _mod, modelica_metatype _cref, modelica_metatype _inCIState, modelica_metatype _impl, modelica_metatype _inUpdatedComps, modelica_metatype _currentCref, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUpdatedComps)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_impl);
_outCache = omc_Inst_updateComponentInEnv(threadData, _inCache, _inEnv, _inIH, _pre, _mod, _cref, _inCIState, tmp1, _inUpdatedComps, _currentCref, out_outEnv, out_outIH, out_outUpdatedComps);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getUpdatedCompsHashTable(threadData_t *threadData, modelica_metatype _optHT)
{
modelica_metatype _ht = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _optHT;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
if (optionNone(tmp4_1)) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 1));
_ht = tmpMeta6;
tmpMeta1 = _ht;
goto tmp3_done;
}
case 1: {
tmpMeta1 = omc_HashTable5_emptyHashTableSized(threadData, ((modelica_integer) 257));
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_ht = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _ht;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_updateComponentsInEnv(threadData_t *threadData, modelica_metatype _cache, modelica_metatype _env, modelica_metatype _inIH, modelica_metatype _pre, modelica_metatype _mod, modelica_metatype _crefs, modelica_metatype _ci_state, modelica_boolean _impl, modelica_metatype *out_outEnv, modelica_metatype *out_outIH)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _cache;
_outEnv = _env;
_outIH = _inIH;
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT331);
{
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp2_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
_outCache = omc_Inst_updateComponentsInEnv2(threadData, _cache, _env, _inIH, _pre, _mod, _crefs, _ci_state, _impl, mmc_mk_none(), mmc_mk_none() ,&_outEnv ,&_outIH, NULL);
goto tmp2_done;
}
case 1: {
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
tmp2_done:
(void)tmp3;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp2_done2;
goto_1:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp3 < 2) {
goto tmp2_top;
}
MMC_THROW_INTERNAL();
tmp2_done2:;
}
}
;
omc_ErrorExt_rollBack(threadData, _OMC_LIT331);
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_updateComponentsInEnv(threadData_t *threadData, modelica_metatype _cache, modelica_metatype _env, modelica_metatype _inIH, modelica_metatype _pre, modelica_metatype _mod, modelica_metatype _crefs, modelica_metatype _ci_state, modelica_metatype _impl, modelica_metatype *out_outEnv, modelica_metatype *out_outIH)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_impl);
_outCache = omc_Inst_updateComponentsInEnv(threadData, _cache, _env, _inIH, _pre, _mod, _crefs, _ci_state, tmp1, out_outEnv, out_outIH);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_propagateRedeclCompAttr(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inOldComponent, modelica_metatype _inNewComponent, modelica_metatype *out_outComponent)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outComponent = NULL;
modelica_boolean _is_array;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _inCache;
_is_array = 0;
if((omc_SCodeUtil_isArrayComponent(threadData, _inOldComponent) && (!omc_SCodeUtil_isArrayComponent(threadData, _inNewComponent))))
{
_outCache = omc_Lookup_isArrayType(threadData, _outCache, _inEnv, omc_AbsynUtil_typeSpecPath(threadData, omc_SCodeUtil_getComponentTypeSpec(threadData, _inNewComponent)) ,&_is_array);
}
_outComponent = omc_SCodeUtil_propagateAttributesVar(threadData, _inOldComponent, _inNewComponent, _is_array);
_return: OMC_LABEL_UNUSED
if (out_outComponent) { *out_outComponent = _outComponent; }
return _outCache;
}
DLLExport
modelica_metatype omc_Inst_redeclareType(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inMod, modelica_metatype _inElement, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_boolean _inImpl, modelica_metatype _inCmod, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outElement, modelica_metatype *out_outMod)
{
jmp_buf *old_mmc_jumper = threadData->mmc_jumper;
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outElement = NULL;
modelica_metatype _outMod = NULL;
modelica_metatype _redecl_el = NULL;
modelica_metatype _mod = NULL;
modelica_metatype _redecl_mod = NULL;
modelica_metatype _m = NULL;
modelica_metatype _old_m = NULL;
modelica_string _redecl_name = NULL;
modelica_string _name = NULL;
modelica_boolean _found;
modelica_metatype _repl = NULL;
modelica_metatype _cc = NULL;
modelica_metatype _cc_comps = NULL;
modelica_metatype _crefs = NULL;
modelica_metatype tmpMeta1;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta3;
modelica_metatype tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _inCache;
_outEnv = _inEnv;
_outIH = _inIH;
_outElement = _inElement;
_outMod = _OMC_LIT7;
if((!omc_Mod_isRedeclareMod(threadData, _inMod)))
{
_outMod = omc_Mod_merge(threadData, _inMod, _inCmod, _OMC_LIT11, 1);
goto _return;
}
tmpMeta1 = _inMod;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta1,1,4) == 0) MMC_THROW_INTERNAL();
tmpMeta2 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 4));
tmpMeta3 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 5));
_redecl_el = tmpMeta2;
_redecl_mod = tmpMeta3;
_redecl_name = omc_SCodeUtil_elementName(threadData, _redecl_el);
{
volatile modelica_metatype tmp7_1;volatile modelica_metatype tmp7_2;
tmp7_1 = _redecl_el;
tmp7_2 = _inElement;
{
volatile mmc_switch_type tmp7;
int tmp8;
tmp7 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp6_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp7 < 5; tmp7++) {
switch (MMC_SWITCH_CAST(tmp7)) {
case 0: {
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_boolean tmp11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
if (mmc__uniontype__metarecord__typedef__equal(tmp7_1,3,8) == 0) goto tmp6_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp7_2,3,8) == 0) goto tmp6_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp7_2), 3));
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta9), 6));
_repl = tmpMeta10;
tmp7 += 3;
tmp11 = (stringEqual(_redecl_name, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inElement), 2)))));
if (1 != tmp11) goto goto_5;
_mod = omc_InstUtil_chainRedeclares(threadData, _inMod, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_redecl_el), 6))));
_crefs = omc_InstUtil_getCrefFromMod(threadData, _mod);
_outCache = omc_Inst_updateComponentsInEnv(threadData, _inCache, _inEnv, _inIH, _inPrefix, _OMC_LIT7, _crefs, _inState, _inImpl ,&_outEnv ,&_outIH);
tmpMeta12 = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, _redecl_name);
_outCache = omc_Mod_elabMod(threadData, _outCache, _outEnv, _outIH, _inPrefix, _mod, _inImpl, tmpMeta12, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_redecl_el), 9))) ,&_m);
tmpMeta13 = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inElement), 2))));
_outCache = omc_Mod_elabMod(threadData, _outCache, _outEnv, _outIH, _inPrefix, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inElement), 6))), _inImpl, tmpMeta13, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inElement), 9))) ,&_old_m);
{
modelica_metatype tmp17_1;
tmp17_1 = _repl;
{
volatile mmc_switch_type tmp17;
int tmp18;
tmp17 = 0;
for (; tmp17 < 2; tmp17++) {
switch (MMC_SWITCH_CAST(tmp17)) {
case 0: {
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
if (mmc__uniontype__metarecord__typedef__equal(tmp17_1,0,1) == 0) goto tmp16_end;
tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp17_1), 2));
if (optionNone(tmpMeta19)) goto tmp16_end;
tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta19), 1));
_cc = tmpMeta19;
_cc_comps = omc_InstUtil_extractConstrainingComps(threadData, _cc, _inEnv, _inPrefix);
_redecl_mod = omc_InstUtil_keepConstrainingTypeModifersOnly(threadData, _redecl_mod, _cc_comps);
_old_m = omc_InstUtil_keepConstrainingTypeModifersOnly(threadData, _old_m, _cc_comps);
_m = omc_Mod_merge(threadData, _m, _redecl_mod, _redecl_name, 1);
_m = omc_Mod_merge(threadData, _m, _old_m, _redecl_name, 1);
tmpMeta14 = omc_Mod_merge(threadData, _m, _inCmod, _redecl_name, 1);
goto tmp16_done;
}
case 1: {
_m = omc_Mod_merge(threadData, _redecl_mod, _m, _redecl_name, 1);
_m = omc_Mod_merge(threadData, _m, _old_m, _redecl_name, 1);
tmpMeta14 = omc_Mod_merge(threadData, _inCmod, _m, _redecl_name, 1);
goto tmp16_done;
}
}
goto tmp16_end;
tmp16_end: ;
}
goto goto_15;
goto_15:;
goto goto_5;
goto tmp16_done;
tmp16_done:;
}
}
_m = tmpMeta14;
_outCache = omc_Inst_propagateRedeclCompAttr(threadData, _outCache, _outEnv, _inElement, _redecl_el ,&_outElement);
_outElement = omc_SCodeUtil_setComponentMod(threadData, _outElement, _mod);
tmpMeta[0+0] = _outElement;
tmpMeta[0+1] = _m;
goto tmp6_done;
}
case 1: {
modelica_boolean tmp21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
if (mmc__uniontype__metarecord__typedef__equal(tmp7_1,2,8) == 0) goto tmp6_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp7_2,2,8) == 0) goto tmp6_end;
tmp7 += 2;
tmp21 = (stringEqual(_redecl_name, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inElement), 2)))));
if (1 != tmp21) goto goto_5;
tmpMeta23 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta24 = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inElement), 2))), tmpMeta23);
tmpMeta22 = mmc_mk_cons(tmpMeta24, MMC_REFSTRUCTLIT(mmc_nil));
_outCache = omc_Inst_updateComponentsInEnv(threadData, _inCache, _inEnv, _inIH, _inPrefix, _inMod, tmpMeta22, _inState, _inImpl ,&_outEnv ,&_outIH);
tmpMeta[0+0] = _inElement;
tmpMeta[0+1] = _redecl_mod;
goto tmp6_done;
}
case 2: {
modelica_boolean tmp25;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
if (mmc__uniontype__metarecord__typedef__equal(tmp7_1,2,8) == 0) goto tmp6_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp7_2,3,8) == 0) goto tmp6_end;
_name = omc_AbsynUtil_typeSpecPathString(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inElement), 5))));
tmp25 = (stringEqual(_redecl_name, _name));
if (1 != tmp25) goto goto_5;
tmpMeta27 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta28 = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, _name, tmpMeta27);
tmpMeta26 = mmc_mk_cons(tmpMeta28, MMC_REFSTRUCTLIT(mmc_nil));
_outCache = omc_Inst_updateComponentsInEnv(threadData, _inCache, _inEnv, _inIH, _inPrefix, _inMod, tmpMeta26, _inState, _inImpl ,&_outEnv ,&_outIH);
tmpMeta[0+0] = _inElement;
tmpMeta[0+1] = _redecl_mod;
goto tmp6_done;
}
case 3: {
modelica_boolean tmp29;
modelica_metatype tmpMeta30;
modelica_metatype tmpMeta31;
modelica_metatype tmpMeta32;
if (mmc__uniontype__metarecord__typedef__equal(tmp7_1,2,8) == 0) goto tmp6_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp7_2,3,8) == 0) goto tmp6_end;
_name = omc_AbsynUtil_pathFirstIdent(threadData, omc_AbsynUtil_typeSpecPath(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inElement), 5)))));
tmp29 = (stringEqual(_redecl_name, _name));
if (1 != tmp29) goto goto_5;
tmpMeta31 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta32 = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, _name, tmpMeta31);
tmpMeta30 = mmc_mk_cons(tmpMeta32, MMC_REFSTRUCTLIT(mmc_nil));
_outCache = omc_Inst_updateComponentsInEnv(threadData, _inCache, _inEnv, _inIH, _inPrefix, _inMod, tmpMeta30, _inState, _inImpl ,&_outEnv ,&_outIH);
tmpMeta[0+0] = _inElement;
tmpMeta[0+1] = _redecl_mod;
goto tmp6_done;
}
case 4: {
tmpMeta[0+0] = _inElement;
tmpMeta[0+1] = _OMC_LIT7;
goto tmp6_done;
}
}
goto tmp6_end;
tmp6_end: ;
}
goto goto_5;
tmp6_done:
(void)tmp7;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp6_done2;
goto_5:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp7 < 5) {
goto tmp6_top;
}
MMC_THROW_INTERNAL();
tmp6_done2:;
}
}
_outElement = tmpMeta[0+0];
_outMod = tmpMeta[0+1];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outElement) { *out_outElement = _outElement; }
if (out_outMod) { *out_outMod = _outMod; }
threadData->mmc_jumper = old_mmc_jumper;
return _outCache;
}
modelica_metatype boxptr_Inst_redeclareType(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inMod, modelica_metatype _inElement, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inImpl, modelica_metatype _inCmod, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outElement, modelica_metatype *out_outMod)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImpl);
_outCache = omc_Inst_redeclareType(threadData, _inCache, _inEnv, _inIH, _inMod, _inElement, _inPrefix, _inState, tmp1, _inCmod, out_outEnv, out_outIH, out_outElement, out_outMod);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_updateCompeltsMods__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inPrefix, modelica_metatype _inComponents, modelica_metatype _inState, modelica_boolean _inImplicit, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outComponents)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outComponents = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;volatile modelica_metatype tmp4_5;volatile modelica_metatype tmp4_6;volatile modelica_boolean tmp4_7;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inIH;
tmp4_4 = _inPrefix;
tmp4_5 = _inComponents;
tmp4_6 = _inState;
tmp4_7 = _inImplicit;
{
modelica_metatype _env = NULL;
modelica_metatype _env2 = NULL;
modelica_metatype _env3 = NULL;
modelica_metatype _pre = NULL;
modelica_metatype _umod = NULL;
modelica_metatype _crefs = NULL;
modelica_metatype _crefs_1 = NULL;
modelica_metatype _cref = NULL;
modelica_metatype _cmod_1 = NULL;
modelica_metatype _cmod = NULL;
modelica_metatype _cmod2 = NULL;
modelica_metatype _ltmod = NULL;
modelica_metatype _res = NULL;
modelica_metatype _xs = NULL;
modelica_metatype _elMod = NULL;
modelica_metatype _comp = NULL;
modelica_metatype _redComp = NULL;
modelica_metatype _ci_state = NULL;
modelica_boolean _impl;
modelica_metatype _cache = NULL;
modelica_metatype _ih = NULL;
modelica_string _name = NULL;
modelica_metatype _info = NULL;
modelica_metatype _fprefix = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 5; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
if (!listEmpty(tmp4_5)) goto tmp3_end;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
tmp4 += 4;
tmpMeta6 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = tmpMeta6;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
if (listEmpty(tmp4_5)) goto tmp3_end;
tmpMeta7 = MMC_CAR(tmp4_5);
tmpMeta8 = MMC_CDR(tmp4_5);
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta9,2,0) == 0) goto tmp3_end;
_elMod = tmpMeta7;
_xs = tmpMeta8;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_pre = tmp4_4;
_ci_state = tmp4_6;
_impl = tmp4_7;
tmp4 += 3;
_cache = omc_Inst_updateCompeltsMods__dispatch(threadData, _cache, _env, _ih, _pre, _xs, _ci_state, _impl ,&_env ,&_ih ,&_res);
tmpMeta10 = mmc_mk_cons(_elMod, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = tmpMeta10;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
if (listEmpty(tmp4_5)) goto tmp3_end;
tmpMeta11 = MMC_CAR(tmp4_5);
tmpMeta12 = MMC_CDR(tmp4_5);
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 1));
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta14,1,4) == 0) goto tmp3_end;
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 4));
_comp = tmpMeta13;
_cmod = tmpMeta14;
_redComp = tmpMeta15;
_xs = tmpMeta12;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_pre = tmp4_4;
_ci_state = tmp4_6;
_impl = tmp4_7;
tmp4 += 2;
_info = omc_SCodeUtil_elementInfo(threadData, _redComp);
_umod = omc_Mod_unelabMod(threadData, _cmod);
_crefs = omc_InstUtil_getCrefFromMod(threadData, _umod);
_crefs_1 = omc_InstUtil_getCrefFromCompDim(threadData, _comp);
_crefs = omc_List_unionOnTrue(threadData, _crefs, _crefs_1, boxvar_AbsynUtil_crefEqual);
_name = omc_SCodeUtil_elementName(threadData, _comp);
tmpMeta16 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta17 = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, _name, tmpMeta16);
_cref = tmpMeta17;
_ltmod = omc_List_map1(threadData, _crefs, boxvar_InstUtil_getModsForDep, _xs);
tmpMeta18 = mmc_mk_cons(_cmod, _ltmod);
_cmod2 = omc_List_fold2r(threadData, tmpMeta18, boxvar_Mod_merge, _name, mmc_mk_boolean(1), _OMC_LIT7);
tmpMeta19 = omc_SCodeUtil_elementPrefixes(threadData, _comp);
tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta19), 4));
_fprefix = tmpMeta20;
_cache = omc_Inst_updateComponentsInEnv(threadData, _cache, _env, _ih, _pre, _cmod2, _crefs, _ci_state, _impl ,&_env2 ,&_ih);
tmpMeta22 = mmc_mk_box3(3, &DAE_SubMod_NAMEMOD__desc, _name, _cmod);
tmpMeta21 = mmc_mk_cons(tmpMeta22, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta23 = mmc_mk_box6(3, &DAE_Mod_MOD__desc, _fprefix, _OMC_LIT332, tmpMeta21, mmc_mk_none(), _info);
tmpMeta24 = mmc_mk_cons(_cref, MMC_REFSTRUCTLIT(mmc_nil));
_cache = omc_Inst_updateComponentsInEnv(threadData, _cache, _env2, _ih, _pre, tmpMeta23, tmpMeta24, _ci_state, _impl ,&_env2 ,&_ih);
_cache = omc_Mod_updateMod(threadData, _cache, _env2, _ih, _pre, _cmod, _impl, _info ,&_cmod_1);
_cache = omc_Inst_updateCompeltsMods__dispatch(threadData, _cache, _env2, _ih, _pre, _xs, _ci_state, _impl ,&_env3 ,&_ih ,&_res);
tmpMeta26 = mmc_mk_box2(0, _comp, _cmod_1);
tmpMeta25 = mmc_mk_cons(tmpMeta26, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env3;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = tmpMeta25;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
modelica_metatype tmpMeta29;
modelica_metatype tmpMeta30;
modelica_boolean tmp31;
modelica_metatype tmpMeta32;
modelica_metatype tmpMeta33;
modelica_metatype tmpMeta34;
modelica_metatype tmpMeta35;
modelica_metatype tmpMeta36;
modelica_metatype tmpMeta37;
modelica_metatype tmpMeta38;
modelica_metatype tmpMeta39;
modelica_metatype tmpMeta40;
modelica_metatype tmpMeta41;
if (listEmpty(tmp4_5)) goto tmp3_end;
tmpMeta27 = MMC_CAR(tmp4_5);
tmpMeta28 = MMC_CDR(tmp4_5);
tmpMeta29 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta27), 1));
tmpMeta30 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta27), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta30,0,5) == 0) goto tmp3_end;
_comp = tmpMeta29;
_cmod = tmpMeta30;
_xs = tmpMeta28;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_pre = tmp4_4;
_ci_state = tmp4_6;
_impl = tmp4_7;
tmp31 = omc_Mod_isUntypedMod(threadData, _cmod);
if (0 != tmp31) goto goto_2;
_name = omc_SCodeUtil_elementName(threadData, _comp);
tmpMeta32 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta33 = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, _name, tmpMeta32);
_cref = tmpMeta33;
tmpMeta34 = omc_SCodeUtil_elementPrefixes(threadData, _comp);
tmpMeta35 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta34), 4));
_fprefix = tmpMeta35;
tmpMeta37 = mmc_mk_box3(3, &DAE_SubMod_NAMEMOD__desc, _name, _cmod);
tmpMeta36 = mmc_mk_cons(tmpMeta37, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta38 = mmc_mk_box6(3, &DAE_Mod_MOD__desc, _fprefix, _OMC_LIT332, tmpMeta36, mmc_mk_none(), (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_cmod), 6))));
tmpMeta39 = mmc_mk_cons(_cref, MMC_REFSTRUCTLIT(mmc_nil));
_cache = omc_Inst_updateComponentsInEnv(threadData, _cache, _env, _ih, _pre, tmpMeta38, tmpMeta39, _ci_state, _impl ,&_env2 ,&_ih);
_cache = omc_Inst_updateCompeltsMods__dispatch(threadData, _cache, _env2, _ih, _pre, _xs, _ci_state, _impl ,&_env3 ,&_ih ,&_res);
tmpMeta41 = mmc_mk_box2(0, _comp, _cmod);
tmpMeta40 = mmc_mk_cons(tmpMeta41, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env3;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = tmpMeta40;
goto tmp3_done;
}
case 4: {
modelica_metatype tmpMeta42;
modelica_metatype tmpMeta43;
modelica_metatype tmpMeta44;
modelica_metatype tmpMeta45;
modelica_metatype tmpMeta46;
modelica_metatype tmpMeta47;
modelica_metatype tmpMeta48;
modelica_metatype tmpMeta49;
modelica_metatype tmpMeta50;
modelica_metatype tmpMeta51;
modelica_metatype tmpMeta52;
modelica_metatype tmpMeta53;
modelica_metatype tmpMeta54;
modelica_metatype tmpMeta55;
if (listEmpty(tmp4_5)) goto tmp3_end;
tmpMeta42 = MMC_CAR(tmp4_5);
tmpMeta43 = MMC_CDR(tmp4_5);
tmpMeta44 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta42), 1));
tmpMeta45 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta42), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta45,0,5) == 0) goto tmp3_end;
_comp = tmpMeta44;
_cmod = tmpMeta45;
_xs = tmpMeta43;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_pre = tmp4_4;
_ci_state = tmp4_6;
_impl = tmp4_7;
_info = omc_SCodeUtil_elementInfo(threadData, _comp);
_umod = omc_Mod_unelabMod(threadData, _cmod);
_crefs = omc_InstUtil_getCrefFromMod(threadData, _umod);
_crefs_1 = omc_InstUtil_getCrefFromCompDim(threadData, _comp);
_crefs = omc_List_unionOnTrue(threadData, _crefs, _crefs_1, boxvar_AbsynUtil_crefEqual);
_name = omc_SCodeUtil_elementName(threadData, _comp);
tmpMeta46 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta47 = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, _name, tmpMeta46);
_cref = tmpMeta47;
_ltmod = omc_List_map1(threadData, _crefs, boxvar_InstUtil_getModsForDep, _xs);
_cmod2 = omc_List_fold2r(threadData, _ltmod, boxvar_Mod_merge, _name, mmc_mk_boolean(1), _OMC_LIT7);
tmpMeta48 = omc_SCodeUtil_elementPrefixes(threadData, _comp);
tmpMeta49 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta48), 4));
_fprefix = tmpMeta49;
_cache = omc_Inst_updateComponentsInEnv(threadData, _cache, _env, _ih, _pre, _cmod2, _crefs, _ci_state, _impl ,&_env2 ,&_ih);
tmpMeta51 = mmc_mk_box3(3, &DAE_SubMod_NAMEMOD__desc, _name, _cmod);
tmpMeta50 = mmc_mk_cons(tmpMeta51, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta52 = mmc_mk_box6(3, &DAE_Mod_MOD__desc, _fprefix, _OMC_LIT332, tmpMeta50, mmc_mk_none(), (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_cmod), 6))));
tmpMeta53 = mmc_mk_cons(_cref, MMC_REFSTRUCTLIT(mmc_nil));
_cache = omc_Inst_updateComponentsInEnv(threadData, _cache, _env2, _ih, _pre, tmpMeta52, tmpMeta53, _ci_state, _impl ,&_env2 ,&_ih);
_cache = omc_Mod_updateMod(threadData, _cache, _env2, _ih, _pre, _cmod, _impl, _info ,&_cmod_1);
_cache = omc_Inst_updateCompeltsMods__dispatch(threadData, _cache, _env2, _ih, _pre, _xs, _ci_state, _impl ,&_env3 ,&_ih ,&_res);
tmpMeta55 = mmc_mk_box2(0, _comp, _cmod_1);
tmpMeta54 = mmc_mk_cons(tmpMeta55, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env3;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = tmpMeta54;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 5) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outComponents = tmpMeta[0+3];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outComponents) { *out_outComponents = _outComponents; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_updateCompeltsMods__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inPrefix, modelica_metatype _inComponents, modelica_metatype _inState, modelica_metatype _inImplicit, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outComponents)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImplicit);
_outCache = omc_Inst_updateCompeltsMods__dispatch(threadData, _inCache, _inEnv, _inIH, _inPrefix, _inComponents, _inState, tmp1, out_outEnv, out_outIH, out_outComponents);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_updateCompeltsMods(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inPrefix, modelica_metatype _inComponents, modelica_metatype _inState, modelica_boolean _inImplicit, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outComponents)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outComponents = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT333);
_outCache = omc_Inst_updateCompeltsMods__dispatch(threadData, _inCache, _inEnv, _inIH, _inPrefix, _inComponents, _inState, _inImplicit ,&_outEnv ,&_outIH ,&_outComponents);
omc_ErrorExt_rollBack(threadData, _OMC_LIT333);
tmpMeta[0+0] = _outCache;
tmpMeta[0+1] = _outEnv;
tmpMeta[0+2] = _outIH;
tmpMeta[0+3] = _outComponents;
goto tmp3_done;
}
case 1: {
omc_ErrorExt_rollBack(threadData, _OMC_LIT333);
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = _inEnv;
tmpMeta[0+2] = _inIH;
tmpMeta[0+3] = _inComponents;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 2) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outComponents = tmpMeta[0+3];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outComponents) { *out_outComponents = _outComponents; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_updateCompeltsMods(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inPrefix, modelica_metatype _inComponents, modelica_metatype _inState, modelica_metatype _inImplicit, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outComponents)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImplicit);
_outCache = omc_Inst_updateCompeltsMods(threadData, _inCache, _inEnv, _inIH, _inPrefix, _inComponents, _inState, tmp1, out_outEnv, out_outIH, out_outComponents);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_removePrefixFromBinding(threadData_t *threadData, modelica_metatype _inBind, modelica_metatype _inPrefix)
{
modelica_metatype _outBind = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;
tmp4_1 = _inBind;
tmp4_2 = _inPrefix;
{
modelica_metatype _bind = NULL;
modelica_metatype _pref = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,4) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,2) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,0,6) == 0) goto tmp3_end;
_bind = tmp4_1;
_pref = tmp4_2;
tmpMeta7 = MMC_TAGPTR(mmc_alloc_words(6));
memcpy(MMC_UNTAGPTR(tmpMeta7), MMC_UNTAGPTR(_bind), 6*sizeof(modelica_metatype));
((modelica_metatype*)MMC_UNTAGPTR(tmpMeta7))[2] = omc_PrefixUtil_removeCompPrefixFromExps(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_bind), 2))), (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_pref), 2))));
_bind = tmpMeta7;
tmpMeta1 = _bind;
goto tmp3_done;
}
case 1: {
tmpMeta1 = _inBind;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outBind = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _outBind;
}
DLLExport
modelica_metatype omc_Inst_instElement(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inUnitStore, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inElement, modelica_metatype _inInstDims, modelica_boolean _inImplicit, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUnitStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outVars, modelica_metatype *out_outGraph, modelica_metatype *out_outFieldDomOpt)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outUnitStore = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype _outSets = NULL;
modelica_metatype _outState = NULL;
modelica_metatype _outVars = NULL;
modelica_metatype _outGraph = NULL;
modelica_metatype _outFieldDomOpt = NULL;
modelica_metatype tmpMeta[9] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outFieldDomOpt = mmc_mk_none();
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;volatile modelica_metatype tmp4_5;volatile modelica_metatype tmp4_6;volatile modelica_metatype tmp4_7;volatile modelica_metatype tmp4_8;volatile modelica_metatype tmp4_9;volatile modelica_boolean tmp4_10;volatile modelica_metatype tmp4_11;volatile modelica_metatype tmp4_12;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inIH;
tmp4_4 = _inUnitStore;
tmp4_5 = _inMod;
tmp4_6 = _inPrefix;
tmp4_7 = _inState;
tmp4_8 = _inElement;
tmp4_9 = _inInstDims;
tmp4_10 = _inImplicit;
tmp4_11 = _inGraph;
tmp4_12 = _inSets;
{
modelica_metatype _own_cref = NULL;
modelica_metatype _dir = NULL;
modelica_metatype _info = NULL;
modelica_metatype _io = NULL;
modelica_metatype _t = NULL;
modelica_metatype _type_name = NULL;
modelica_metatype _ts = NULL;
modelica_boolean _already_declared;
modelica_boolean _impl;
modelica_boolean _is_function_input;
modelica_metatype _ci_state = NULL;
modelica_metatype _graph = NULL;
modelica_metatype _graph_new = NULL;
modelica_metatype _csets = NULL;
modelica_metatype _dae_attr = NULL;
modelica_metatype _binding = NULL;
modelica_metatype _cref = NULL;
modelica_metatype _cref2 = NULL;
modelica_metatype _dae = NULL;
modelica_metatype _mod = NULL;
modelica_metatype _mods = NULL;
modelica_metatype _class_mod = NULL;
modelica_metatype _mm = NULL;
modelica_metatype _cmod = NULL;
modelica_metatype _mod_1 = NULL;
modelica_metatype _var_class_mod = NULL;
modelica_metatype _m_1 = NULL;
modelica_metatype _cls_mod = NULL;
modelica_metatype _ty = NULL;
modelica_metatype _new_var = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _env = NULL;
modelica_metatype _env2 = NULL;
modelica_metatype _cenv = NULL;
modelica_metatype _comp_env = NULL;
modelica_metatype _ih = NULL;
modelica_metatype _inst_dims = NULL;
modelica_metatype _crefs = NULL;
modelica_metatype _crefs1 = NULL;
modelica_metatype _crefs2 = NULL;
modelica_metatype _crefs3 = NULL;
modelica_metatype _ad = NULL;
modelica_metatype _dims = NULL;
modelica_metatype _vars = NULL;
modelica_metatype _cond = NULL;
modelica_metatype _eq = NULL;
modelica_metatype _comment = NULL;
modelica_metatype _pre = NULL;
modelica_metatype _attr = NULL;
modelica_metatype _cls = NULL;
modelica_metatype _comp = NULL;
modelica_metatype _el = NULL;
modelica_metatype _final_prefix = NULL;
modelica_metatype _ct = NULL;
modelica_metatype _m = NULL;
modelica_metatype _oldmod = NULL;
modelica_metatype _prefixes = NULL;
modelica_metatype _vt = NULL;
modelica_string _name = NULL;
modelica_string _id = NULL;
modelica_string _ns = NULL;
modelica_string _s = NULL;
modelica_string _scope_str = NULL;
modelica_metatype _store = NULL;
modelica_metatype _topInstance = NULL;
modelica_metatype _sm = NULL;
modelica_boolean _isInSM;
modelica_metatype _elems = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 6; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,0,3) == 0) goto tmp3_end;
tmp4 += 4;
tmpMeta7 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = _inEnv;
tmpMeta[0+2] = _inIH;
tmpMeta[0+3] = _inUnitStore;
tmpMeta[0+4] = _OMC_LIT15;
tmpMeta[0+5] = _inSets;
tmpMeta[0+6] = _inState;
tmpMeta[0+7] = tmpMeta7;
tmpMeta[0+8] = _inGraph;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,2,8) == 0) goto tmp3_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
_cls = tmpMeta8;
_cmod = tmpMeta9;
tmp4 += 3;
if((!omc_Mod_isEmptyMod(threadData, _cmod)))
{
_env = omc_FGraph_updateClass(threadData, _inEnv, _cls, _inPrefix, _cmod, _OMC_LIT326, _inEnv);
}
else
{
_env = _inEnv;
}
tmpMeta10 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _inIH;
tmpMeta[0+3] = _inUnitStore;
tmpMeta[0+4] = _OMC_LIT15;
tmpMeta[0+5] = _inSets;
tmpMeta[0+6] = _inState;
tmpMeta[0+7] = tmpMeta10;
tmpMeta[0+8] = _inGraph;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
modelica_boolean tmp28;
modelica_metatype tmpMeta29;
modelica_boolean tmp30;
modelica_metatype tmpMeta31;
modelica_metatype tmpMeta32;
modelica_metatype tmpMeta33;
modelica_boolean tmp34;
modelica_metatype tmpMeta35;
modelica_metatype tmpMeta36;
modelica_metatype tmpMeta37;
modelica_metatype tmpMeta38;
modelica_metatype tmpMeta39;
modelica_metatype tmpMeta40;
modelica_metatype tmpMeta41;
modelica_metatype tmpMeta42;
modelica_metatype tmpMeta43;
modelica_metatype tmpMeta44;
modelica_metatype tmpMeta45;
modelica_metatype tmpMeta46;
modelica_metatype tmpMeta47;
modelica_metatype tmpMeta48;
modelica_metatype tmpMeta49;
modelica_metatype tmpMeta50;
modelica_metatype tmpMeta51;
modelica_metatype tmpMeta52;
modelica_metatype tmpMeta53;
modelica_metatype tmpMeta54;
modelica_metatype tmpMeta55;
modelica_metatype tmpMeta56;
modelica_metatype tmpMeta57;
modelica_metatype tmpMeta58;
modelica_metatype tmpMeta59;
modelica_metatype tmpMeta60;
modelica_metatype tmpMeta61;
modelica_metatype tmpMeta62;
modelica_metatype tmpMeta63;
modelica_metatype tmpMeta64;
modelica_metatype tmpMeta65;
modelica_metatype tmpMeta66;
modelica_metatype tmpMeta67;
modelica_boolean tmp68;
modelica_metatype tmpMeta69;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta11,3,8) == 0) goto tmp3_end;
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 2));
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta13,0,2) == 0) goto tmp3_end;
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
_el = tmpMeta11;
_name = tmpMeta12;
_cmod = tmpMeta14;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_ci_state = tmp4_7;
_inst_dims = tmp4_9;
_impl = tmp4_10;
_graph = tmp4_11;
_csets = tmp4_12;
tmp4 += 1;
tmpMeta15 = _el;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta15,3,8) == 0) goto goto_2;
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta15), 2));
tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta15), 3));
tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta17), 4));
tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta17), 5));
tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta15), 4));
tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta20), 2));
tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta15), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta22,0,2) == 0) goto goto_2;
tmpMeta23 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 2));
tmpMeta24 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta15), 6));
tmpMeta25 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta15), 7));
tmpMeta26 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta15), 8));
tmpMeta27 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta15), 9));
_name = tmpMeta16;
_prefixes = tmpMeta17;
_final_prefix = tmpMeta18;
_io = tmpMeta19;
_attr = tmpMeta20;
_ad = tmpMeta21;
_ts = tmpMeta22;
_t = tmpMeta23;
_m = tmpMeta24;
_comment = tmpMeta25;
_cond = tmpMeta26;
_info = tmpMeta27;
tmp28 = (omc_Config_acceptParModelicaGrammar(threadData)?omc_InstUtil_checkParallelismWRTEnv(threadData, _env, _name, _attr, _info):1);
if (1 != tmp28) goto goto_2;
_m = omc_SCodeUtil_mergeModifiers(threadData, _m, omc_SCodeUtil_getConstrainedByModifiers(threadData, _prefixes));
if(omc_SCodeUtil_finalBool(threadData, _final_prefix))
{
_m = omc_InstUtil_traverseModAddFinal(threadData, _m);
}
tmp30 = (modelica_boolean)referenceEq((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_el), 6))), _m);
if(tmp30)
{
tmpMeta31 = _el;
}
else
{
tmpMeta29 = mmc_mk_box9(6, &SCode_Element_COMPONENT__desc, _name, _prefixes, _attr, _ts, _m, _comment, _cond, _info);
tmpMeta31 = tmpMeta29;
}
_comp = tmpMeta31;
_oldmod = _m;
tmpMeta32 = mmc_mk_box2(0, _comp, _cmod);
_already_declared = omc_InstUtil_checkMultiplyDeclared(threadData, _cache, _env, _mods, _pre, _ci_state, tmpMeta32, _inst_dims, _impl);
_m = omc_InstUtil_chainRedeclares(threadData, _mods, _m);
_m = omc_SCodeInstUtil_expandEnumerationMod(threadData, _m);
_m = omc_InstUtil_traverseModAddDims(threadData, _cache, _env, _pre, _m, _inst_dims);
tmp34 = (modelica_boolean)referenceEq(_oldmod, _m);
if(tmp34)
{
tmpMeta35 = _comp;
}
else
{
tmpMeta33 = mmc_mk_box9(6, &SCode_Element_COMPONENT__desc, _name, _prefixes, _attr, _ts, _m, _comment, _cond, _info);
tmpMeta35 = tmpMeta33;
}
_comp = tmpMeta35;
tmpMeta36 = mmc_mk_box2(8, &ClassInf_Event_FOUND__COMPONENT__desc, _name);
_ci_state = omc_ClassInf_trans(threadData, _ci_state, tmpMeta36);
tmpMeta37 = MMC_REFSTRUCTLIT(mmc_nil);
_cref = omc_ComponentReference_makeCrefIdent(threadData, _name, _OMC_LIT334, tmpMeta37);
_cache = omc_PrefixUtil_prefixCref(threadData, _cache, _env, _ih, _pre, _cref, NULL);
_class_mod = omc_Mod_lookupModificationP(threadData, _mods, _t);
_mm = omc_Mod_lookupCompModification(threadData, _mods, _name);
tmpMeta38 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta39 = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, _name, tmpMeta38);
_own_cref = tmpMeta39;
_crefs1 = omc_InstUtil_getCrefFromMod(threadData, _m);
_crefs2 = omc_InstUtil_getCrefFromDim(threadData, _ad);
_crefs3 = omc_InstUtil_getCrefFromCond(threadData, _cond);
tmpMeta40 = mmc_mk_cons(_crefs1, mmc_mk_cons(_crefs2, mmc_mk_cons(_crefs3, MMC_REFSTRUCTLIT(mmc_nil))));
_crefs = omc_List_unionList(threadData, tmpMeta40);
_cache = omc_Inst_removeSelfReferenceAndUpdate(threadData, _cache, _env, _ih, _store, _crefs, _own_cref, _t, _ci_state, _attr, _prefixes, _impl, _inst_dims, _pre, _mods, _m, _info ,&_env ,&_ih ,&_store ,&_crefs);
_cache = omc_Inst_updateComponentsInEnv(threadData, _cache, _env, _ih, _pre, _mods, _crefs, _ci_state, _impl ,&_env2 ,&_ih);
_cache = omc_Mod_updateMod(threadData, _cache, _env2, _ih, _pre, _class_mod, _impl, _info ,&_class_mod);
_cache = omc_Mod_updateMod(threadData, _cache, _env2, _ih, _pre, _mm, _impl, _info ,&_mm);
_var_class_mod = omc_Inst_modifyInstantiateClass(threadData, _class_mod, _t ,&_class_mod);
tmpMeta41 = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, _name);
_cache = omc_Mod_elabMod(threadData, _cache, _env2, _ih, _pre, _m, _impl, tmpMeta41, _info ,&_m_1);
_mod = omc_Mod_merge(threadData, _mm, _class_mod, _name, 1);
_mod = omc_Mod_merge(threadData, _mod, _m_1, _name, (!omc_ClassInf_isRecord(threadData, _ci_state)));
_mod = omc_Mod_merge(threadData, _cmod, _mod, _name, 1);
_mod = omc_Mod_merge(threadData, _mod, _var_class_mod, _name, 1);
tmpMeta55 = omc_Inst_redeclareType(threadData, _cache, _env2, _ih, _mod, _comp, _pre, _ci_state, _impl, _OMC_LIT7, &tmpMeta42, &tmpMeta43, &tmpMeta44, &tmpMeta54);
_cache = tmpMeta55;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta44,3,8) == 0) goto goto_2;
tmpMeta45 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta44), 2));
tmpMeta46 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta44), 3));
tmpMeta47 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta46), 5));
tmpMeta48 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta44), 4));
tmpMeta49 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta48), 2));
tmpMeta50 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta48), 6));
tmpMeta51 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta44), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta51,0,2) == 0) goto goto_2;
tmpMeta52 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta51), 2));
tmpMeta53 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta44), 7));
_env2 = tmpMeta42;
_ih = tmpMeta43;
_name = tmpMeta45;
_prefixes = tmpMeta46;
_io = tmpMeta47;
_attr = tmpMeta48;
_ad = tmpMeta49;
_dir = tmpMeta50;
_t = tmpMeta52;
_comment = tmpMeta53;
_mod_1 = tmpMeta54;
_cache = omc_Lookup_lookupClass(threadData, _cache, _env2, _t, mmc_mk_some(_info) ,&_cls ,&_cenv);
_cls_mod = omc_Mod_getClassModifier(threadData, _cenv, omc_SCodeUtil_className(threadData, _cls));
if((!omc_Mod_isEmptyMod(threadData, _cls_mod)))
{
if((!listEmpty(_ad)))
{
_cls_mod = omc_Mod_addEachIfNeeded(threadData, _cls_mod, _OMC_LIT336);
}
_mod_1 = omc_Mod_merge(threadData, _mod_1, _cls_mod, _name, 1);
}
_attr = omc_SCodeUtil_mergeAttributesFromClass(threadData, _attr, _cls);
tmpMeta56 = MMC_REFSTRUCTLIT(mmc_nil);
_inst_dims = omc_List_appendElt(threadData, tmpMeta56, _inst_dims);
_cache = omc_Mod_updateMod(threadData, _cache, _env2, _ih, _pre, _mod, _impl, _info ,&_mod);
_cache = omc_Mod_updateMod(threadData, _cache, _env2, _ih, _pre, _mod_1, _impl, _info ,&_mod_1);
_mod = omc_InstUtil_selectModifiers(threadData, _mod, _mod_1, _t ,&_mod_1);
_eq = omc_Mod_modEquation(threadData, _mod);
_is_function_input = omc_InstUtil_isFunctionInput(threadData, _ci_state, _dir);
_cache = omc_InstUtil_elabArraydim(threadData, _cache, _env2, _own_cref, _t, _ad, _eq, _impl, 1, _is_function_input, _pre, _info, _inst_dims ,&_dims);
if((omc_Flags_getConfigEnum(threadData, _OMC_LIT366) == ((modelica_integer) 5)))
{
_dims = omc_InstUtil_elabField(threadData, _inCache, _inEnv, _name, _attr, _dims, _mod_1, _info ,&_mod_1 ,&_outFieldDomOpt);
}
_cenv = omc_FGraph_createVersionScope(threadData, _env2, _name, _pre, _mod_1, _cenv, _cls, _ih ,&_cls ,&_ih);
_cache = omc_PrefixUtil_prefixCref(threadData, _cache, _cenv, _ih, _pre, _cref ,&_cref2);
if((!listEmpty(_ih)))
{
_topInstance = listHead(_ih);
tmpMeta57 = _topInstance;
tmpMeta58 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta57), 5));
_sm = tmpMeta58;
if(omc_BaseHashSet_has(threadData, _cref2, _sm))
{
_isInSM = 1;
}
else
{
_isInSM = 0;
}
}
else
{
_isInSM = 0;
}
tmpMeta59 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_InstVar_instVar(threadData, _cache, _cenv, _ih, _store, _ci_state, _mod_1, _pre, _name, _cls, _attr, _prefixes, _dims, tmpMeta59, _inst_dims, _impl, _comment, _info, _graph, _csets, _env2 ,&_comp_env ,&_ih ,&_store ,&_dae ,&_csets ,&_ty ,&_graph_new);
if(_isInSM)
{
tmpMeta60 = _dae;
tmpMeta61 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta60), 2));
_elems = tmpMeta61;
tmpMeta63 = mmc_mk_box3(33, &DAE_Element_SM__COMP__desc, _cref2, _elems);
tmpMeta62 = mmc_mk_cons(tmpMeta63, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta64 = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta62);
_dae = tmpMeta64;
}
_cache = omc_InstBinding_makeBinding(threadData, _cache, _env2, _attr, _mod, _ty, _pre, _name, _info ,&_binding);
_dae_attr = omc_DAEUtil_translateSCodeAttrToDAEAttr(threadData, _attr, _prefixes);
_ty = omc_Types_traverseType(threadData, _ty, mmc_mk_integer(((modelica_integer) 1)), boxvar_Types_setIsFunctionPointer, NULL);
_binding = omc_Inst_removePrefixFromBinding(threadData, _binding, _pre);
tmpMeta65 = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _name, _dae_attr, _ty, _binding, mmc_mk_boolean(0), mmc_mk_none());
_new_var = tmpMeta65;
_env = omc_FGraph_updateComp(threadData, _env2, _new_var, _OMC_LIT367, _comp_env);
tmp68 = (modelica_boolean)_already_declared;
if(tmp68)
{
tmpMeta66 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta69 = tmpMeta66;
}
else
{
tmpMeta67 = mmc_mk_cons(_new_var, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta69 = tmpMeta67;
}
_vars = tmpMeta69;
_dae = (_already_declared?_OMC_LIT15:_dae);
omc_InnerOuter_handleInnerOuterEquations(threadData, _io, _OMC_LIT15, _ih, _graph_new, _graph ,&_ih ,&_graph);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _dae;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _ci_state;
tmpMeta[0+7] = _vars;
tmpMeta[0+8] = _graph;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta70;
modelica_metatype tmpMeta71;
modelica_metatype tmpMeta72;
modelica_metatype tmpMeta73;
modelica_metatype tmpMeta74;
modelica_metatype tmpMeta75;
modelica_metatype tmpMeta76;
modelica_metatype tmpMeta77;
modelica_metatype tmpMeta78;
modelica_metatype tmpMeta79;
modelica_metatype tmpMeta80;
modelica_metatype tmpMeta81;
modelica_metatype tmpMeta82;
modelica_metatype tmpMeta83;
modelica_metatype tmpMeta84;
modelica_boolean tmp85;
modelica_metatype tmpMeta86;
modelica_metatype tmpMeta87;
modelica_metatype tmpMeta88;
modelica_metatype tmpMeta89;
modelica_metatype tmpMeta90;
modelica_metatype tmpMeta91;
modelica_metatype tmpMeta92;
modelica_metatype tmpMeta93;
modelica_metatype tmpMeta94;
modelica_metatype tmpMeta95;
modelica_metatype tmpMeta96;
modelica_metatype tmpMeta97;
modelica_metatype tmpMeta98;
modelica_boolean tmp99;
modelica_metatype tmpMeta100;
tmpMeta70 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta70,3,8) == 0) goto tmp3_end;
tmpMeta71 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta70), 2));
tmpMeta72 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta70), 3));
tmpMeta73 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta72), 4));
tmpMeta74 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta72), 5));
tmpMeta75 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta70), 4));
tmpMeta76 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta75), 2));
tmpMeta77 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta75), 3));
tmpMeta78 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta70), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta78,1,3) == 0) goto tmp3_end;
tmpMeta79 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta78), 2));
tmpMeta80 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta70), 6));
tmpMeta81 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta70), 7));
tmpMeta82 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta70), 8));
tmpMeta83 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta70), 9));
tmpMeta84 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
_comp = tmpMeta70;
_name = tmpMeta71;
_prefixes = tmpMeta72;
_final_prefix = tmpMeta73;
_io = tmpMeta74;
_attr = tmpMeta75;
_ad = tmpMeta76;
_ct = tmpMeta77;
_ts = tmpMeta78;
_type_name = tmpMeta79;
_m = tmpMeta80;
_comment = tmpMeta81;
_cond = tmpMeta82;
_info = tmpMeta83;
_cmod = tmpMeta84;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_ci_state = tmp4_7;
_inst_dims = tmp4_9;
_impl = tmp4_10;
_graph = tmp4_11;
_csets = tmp4_12;
tmp4 += 1;
tmp85 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp85) goto goto_2;
if(omc_SCodeUtil_finalBool(threadData, _final_prefix))
{
_m = omc_InstUtil_traverseModAddFinal(threadData, _m);
tmpMeta86 = mmc_mk_box9(6, &SCode_Element_COMPONENT__desc, _name, _prefixes, _attr, _ts, _m, _comment, _cond, _info);
_comp = tmpMeta86;
}
tmpMeta87 = mmc_mk_box2(0, _comp, _cmod);
_already_declared = omc_InstUtil_checkMultiplyDeclared(threadData, _cache, _env, _mods, _pre, _ci_state, tmpMeta87, _inst_dims, _impl);
tmpMeta88 = MMC_REFSTRUCTLIT(mmc_nil);
_cref = omc_ComponentReference_makeCrefIdent(threadData, _name, _OMC_LIT334, tmpMeta88);
_cache = omc_PrefixUtil_prefixCref(threadData, _cache, _env, _ih, _pre, _cref, NULL);
tmpMeta89 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta90 = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, _name, tmpMeta89);
_own_cref = tmpMeta90;
tmpMeta91 = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, _name);
_cache = omc_Mod_elabMod(threadData, _cache, _env, _ih, _pre, _m, _impl, tmpMeta91, _info ,&_m_1);
_id = omc_AbsynUtil_pathString(threadData, _type_name, _OMC_LIT5, 1, 0);
tmpMeta92 = mmc_mk_box7(3, &SCode_Attributes_ATTR__desc, _ad, _ct, _OMC_LIT377, _OMC_LIT378, _OMC_LIT379, _OMC_LIT380);
tmpMeta93 = mmc_mk_box4(5, &SCode_ClassDef_DERIVED__desc, _ts, _OMC_LIT16, tmpMeta92);
tmpMeta94 = mmc_mk_box9(5, &SCode_Element_CLASS__desc, _id, _OMC_LIT373, _OMC_LIT374, _OMC_LIT375, _OMC_LIT376, tmpMeta93, _OMC_LIT261, _info);
_cls = tmpMeta94;
_cache = omc_InstUtil_elabArraydim(threadData, _cache, _env, _own_cref, _OMC_LIT298, _ad, mmc_mk_none(), _impl, 1, 0, _pre, _info, _inst_dims ,&_dims);
tmpMeta95 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_InstVar_instVar(threadData, _cache, _env, _ih, _store, _ci_state, _m_1, _pre, _name, _cls, _attr, _prefixes, _dims, tmpMeta95, _inst_dims, _impl, _comment, _info, _graph, _csets, _env ,&_comp_env ,&_ih ,&_store ,&_dae ,&_csets ,&_ty ,&_graph_new);
_cache = omc_InstBinding_makeBinding(threadData, _cache, _env, _attr, _m_1, _ty, _pre, _name, _info ,&_binding);
_dae_attr = omc_DAEUtil_translateSCodeAttrToDAEAttr(threadData, _attr, _prefixes);
_ty = omc_Types_traverseType(threadData, _ty, mmc_mk_integer(((modelica_integer) 1)), boxvar_Types_setIsFunctionPointer, NULL);
tmpMeta96 = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _name, _dae_attr, _ty, _binding, mmc_mk_boolean(0), mmc_mk_none());
_new_var = tmpMeta96;
_env = omc_FGraph_updateComp(threadData, _env, _new_var, _OMC_LIT367, _comp_env);
tmp99 = (modelica_boolean)_already_declared;
if(tmp99)
{
tmpMeta97 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta100 = tmpMeta97;
}
else
{
tmpMeta98 = mmc_mk_cons(_new_var, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta100 = tmpMeta98;
}
_vars = tmpMeta100;
_dae = (_already_declared?_OMC_LIT15:_dae);
omc_InnerOuter_handleInnerOuterEquations(threadData, _io, _OMC_LIT15, _ih, _graph_new, _graph ,&_ih ,&_graph);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _dae;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _ci_state;
tmpMeta[0+7] = _vars;
tmpMeta[0+8] = _graph;
goto tmp3_done;
}
case 4: {
modelica_metatype tmpMeta101;
modelica_metatype tmpMeta102;
modelica_metatype tmpMeta103;
modelica_metatype tmpMeta104;
modelica_metatype tmpMeta105;
modelica_metatype tmpMeta106;
modelica_metatype tmpMeta107;
modelica_boolean tmp108;
modelica_metatype tmpMeta110;
modelica_metatype tmpMeta111;
modelica_metatype tmpMeta112;
modelica_boolean tmp113;
modelica_metatype tmpMeta114;
tmpMeta101 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta101,3,8) == 0) goto tmp3_end;
tmpMeta102 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta101), 2));
tmpMeta103 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta101), 4));
tmpMeta104 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta103), 5));
tmpMeta105 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta101), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta105,0,2) == 0) goto tmp3_end;
tmpMeta106 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta105), 2));
tmpMeta107 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta101), 9));
_name = tmpMeta102;
_vt = tmpMeta104;
_t = tmpMeta106;
_info = tmpMeta107;
_cache = tmp4_1;
_env = tmp4_2;
_pre = tmp4_6;
_ci_state = tmp4_7;
tmp108 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
omc_Lookup_lookupClass(threadData, _cache, _env, _t, mmc_mk_none(), NULL, NULL);
tmp108 = 1;
goto goto_109;
goto_109:;
MMC_CATCH_INTERNAL(mmc_jumper)
if (tmp108) {goto goto_2;}
_s = omc_AbsynUtil_pathString(threadData, _t, _OMC_LIT5, 1, 0);
_scope_str = omc_FGraph_printGraphPathStr(threadData, _env);
tmpMeta110 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta111 = MMC_REFSTRUCTLIT(mmc_nil);
_pre = omc_PrefixUtil_prefixAdd(threadData, _name, tmpMeta110, tmpMeta111, _pre, _vt, _ci_state, _info);
_ns = omc_PrefixUtil_printPrefixStrIgnoreNoPre(threadData, _pre);
tmpMeta112 = mmc_mk_cons(_s, mmc_mk_cons(_scope_str, mmc_mk_cons(_ns, MMC_REFSTRUCTLIT(mmc_nil))));
omc_Error_addSourceMessage(threadData, _OMC_LIT383, tmpMeta112, _info);
tmp113 = omc_Flags_isSet(threadData, _OMC_LIT277);
if (1 != tmp113) goto goto_2;
tmpMeta114 = stringAppend(_OMC_LIT384,omc_AbsynUtil_pathString(threadData, _t, _OMC_LIT5, 1, 0));
omc_Debug_traceln(threadData, tmpMeta114);
goto goto_2;
goto tmp3_done;
}
case 5: {
modelica_metatype tmpMeta115;
modelica_boolean tmp116;
modelica_metatype tmpMeta117;
modelica_metatype tmpMeta118;
tmpMeta115 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 1));
_env = tmp4_2;
_comp = tmpMeta115;
tmp116 = omc_Flags_isSet(threadData, _OMC_LIT277);
if (1 != tmp116) goto goto_2;
tmpMeta117 = stringAppend(_OMC_LIT385,omc_SCodeDump_unparseElementStr(threadData, _comp, _OMC_LIT386));
omc_Debug_traceln(threadData, tmpMeta117);
tmpMeta118 = stringAppend(_OMC_LIT387,omc_FGraph_printGraphPathStr(threadData, _env));
omc_Debug_traceln(threadData, tmpMeta118);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 6) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outUnitStore = tmpMeta[0+3];
_outDae = tmpMeta[0+4];
_outSets = tmpMeta[0+5];
_outState = tmpMeta[0+6];
_outVars = tmpMeta[0+7];
_outGraph = tmpMeta[0+8];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outUnitStore) { *out_outUnitStore = _outUnitStore; }
if (out_outDae) { *out_outDae = _outDae; }
if (out_outSets) { *out_outSets = _outSets; }
if (out_outState) { *out_outState = _outState; }
if (out_outVars) { *out_outVars = _outVars; }
if (out_outGraph) { *out_outGraph = _outGraph; }
if (out_outFieldDomOpt) { *out_outFieldDomOpt = _outFieldDomOpt; }
return _outCache;
}
modelica_metatype boxptr_Inst_instElement(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inUnitStore, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inElement, modelica_metatype _inInstDims, modelica_metatype _inImplicit, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outUnitStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outVars, modelica_metatype *out_outGraph, modelica_metatype *out_outFieldDomOpt)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImplicit);
_outCache = omc_Inst_instElement(threadData, _inCache, _inEnv, _inIH, _inUnitStore, _inMod, _inPrefix, _inState, _inElement, _inInstDims, tmp1, _inCallingScope, _inGraph, _inSets, out_outEnv, out_outIH, out_outUnitStore, out_outDae, out_outSets, out_outState, out_outVars, out_outGraph, out_outFieldDomOpt);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Inst_isDeletedComponent(threadData_t *threadData, modelica_metatype _element, modelica_metatype _prefix, modelica_boolean _stopOnError, modelica_metatype __omcQ_24in_5Fenv, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype *out_env, modelica_metatype *out_cache)
{
modelica_boolean _isDeleted;
modelica_metatype _env = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _el = NULL;
modelica_string _el_name = NULL;
modelica_metatype _info = NULL;
modelica_metatype _cond_val_opt = NULL;
modelica_boolean _cond_val;
modelica_metatype _var = NULL;
modelica_metatype tmpMeta1;
modelica_metatype tmpMeta2;
modelica_metatype tmpMeta3;
modelica_metatype tmpMeta4;
modelica_metatype tmpMeta5;
modelica_integer tmp6;
modelica_metatype tmpMeta7;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_env = __omcQ_24in_5Fenv;
_cache = __omcQ_24in_5Fcache;
if(omc_InstUtil_componentHasCondition(threadData, _element))
{
tmpMeta1 = _element;
tmpMeta2 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 1));
_el = tmpMeta2;
_el_name = omc_InstUtil_extractCurrentName(threadData, _el ,&_info);
if(omc_SCodeUtil_isElementRedeclare(threadData, _el))
{
tmpMeta3 = mmc_mk_cons(_el_name, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT390, tmpMeta3, _info);
MMC_THROW_INTERNAL();
}
_cond_val_opt = omc_InstUtil_instElementCondExp(threadData, _cache, _env, _el, _prefix, _info ,&_cache);
if(isNone(_cond_val_opt))
{
if(_stopOnError)
{
MMC_THROW_INTERNAL();
}
else
{
_isDeleted = 0;
goto _return;
}
}
tmpMeta4 = _cond_val_opt;
if (optionNone(tmpMeta4)) MMC_THROW_INTERNAL();
tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta4), 1));
tmp6 = mmc_unbox_integer(tmpMeta5);
_cond_val = tmp6;
_isDeleted = (!_cond_val);
if(((!_isDeleted && !1) || (_isDeleted && 1)))
{
tmpMeta7 = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _el_name, _OMC_LIT392, _OMC_LIT334, _OMC_LIT262, mmc_mk_boolean(0), mmc_mk_none());
_var = tmpMeta7;
_env = omc_FGraph_updateComp(threadData, _env, _var, _OMC_LIT393, _OMC_LIT395);
}
}
else
{
_isDeleted = 0;
}
_return: OMC_LABEL_UNUSED
if (out_env) { *out_env = _env; }
if (out_cache) { *out_cache = _cache; }
return _isDeleted;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_isDeletedComponent(threadData_t *threadData, modelica_metatype _element, modelica_metatype _prefix, modelica_metatype _stopOnError, modelica_metatype __omcQ_24in_5Fenv, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype *out_env, modelica_metatype *out_cache)
{
modelica_integer tmp1;
modelica_boolean _isDeleted;
modelica_metatype out_isDeleted;
tmp1 = mmc_unbox_integer(_stopOnError);
_isDeleted = omc_Inst_isDeletedComponent(threadData, _element, _prefix, tmp1, __omcQ_24in_5Fenv, __omcQ_24in_5Fcache, out_env, out_cache);
out_isDeleted = mmc_mk_icon(_isDeleted);
return out_isDeleted;
}
DLLExport
modelica_metatype omc_Inst_instElement2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inElement, modelica_metatype _inInstDims, modelica_boolean _inImplicit, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_boolean _inStopOnError, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outVars, modelica_metatype *out_outGraph, modelica_metatype *out_outFieldDomOpt)
{
jmp_buf *old_mmc_jumper = threadData->mmc_jumper;
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outStore = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype tmpMeta1;
modelica_metatype _outSets = NULL;
modelica_metatype _outState = NULL;
modelica_metatype _outVars = NULL;
modelica_metatype tmpMeta2;
modelica_metatype _outGraph = NULL;
modelica_metatype _outFieldDomOpt = NULL;
modelica_metatype _elt = NULL;
modelica_boolean _is_deleted;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outIH = _inIH;
_outStore = _inStore;
tmpMeta1 = MMC_REFSTRUCTLIT(mmc_nil);
_outDae = tmpMeta1;
_outSets = _inSets;
_outState = _inState;
tmpMeta2 = MMC_REFSTRUCTLIT(mmc_nil);
_outVars = tmpMeta2;
_outGraph = _inGraph;
_outFieldDomOpt = mmc_mk_none();
_is_deleted = omc_Inst_isDeletedComponent(threadData, _inElement, _inPrefix, _inStopOnError, _inEnv, _inCache ,&_outEnv ,&_outCache);
if(_is_deleted)
{
goto _return;
}
{
{
volatile mmc_switch_type tmp5;
int tmp6;
tmp5 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp4_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp5 < 2; tmp5++) {
switch (MMC_SWITCH_CAST(tmp5)) {
case 0: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT396);
tmpMeta12 = mmc_mk_cons(_inElement, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta13 = omc_Inst_updateCompeltsMods(threadData, _inCache, _outEnv, _outIH, _inPrefix, tmpMeta12, _outState, _inImplicit, &tmpMeta7, &tmpMeta8, &tmpMeta9);
_outCache = tmpMeta13;
if (listEmpty(tmpMeta9)) goto goto_3;
tmpMeta10 = MMC_CAR(tmpMeta9);
tmpMeta11 = MMC_CDR(tmpMeta9);
if (!listEmpty(tmpMeta11)) goto goto_3;
_outEnv = tmpMeta7;
_outIH = tmpMeta8;
_elt = tmpMeta10;
tmpMeta24 = omc_Inst_instElement(threadData, _outCache, _outEnv, _outIH, _outStore, _inMod, _inPrefix, _outState, _elt, _inInstDims, _inImplicit, _inCallingScope, _outGraph, _inSets, &tmpMeta14, &tmpMeta15, &tmpMeta16, &tmpMeta17, &tmpMeta19, &tmpMeta20, &tmpMeta21, &tmpMeta22, &tmpMeta23);
_outCache = tmpMeta24;
tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta17), 2));
_outEnv = tmpMeta14;
_outIH = tmpMeta15;
_outStore = tmpMeta16;
_outDae = tmpMeta18;
_outSets = tmpMeta19;
_outState = tmpMeta20;
_outVars = tmpMeta21;
_outGraph = tmpMeta22;
_outFieldDomOpt = tmpMeta23;
omc_Error_clearCurrentComponent(threadData);
omc_ErrorExt_delCheckpoint(threadData, _OMC_LIT396);
goto tmp4_done;
}
case 1: {
if(_inStopOnError)
{
omc_ErrorExt_delCheckpoint(threadData, _OMC_LIT396);
goto goto_3;
}
else
{
omc_ErrorExt_rollBack(threadData, _OMC_LIT396);
_outCache = _inCache;
_outEnv = _inEnv;
_outIH = _inIH;
goto _return;
}
goto tmp4_done;
}
}
goto tmp4_end;
tmp4_end: ;
}
goto goto_3;
tmp4_done:
(void)tmp5;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp4_done2;
goto_3:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp5 < 2) {
goto tmp4_top;
}
MMC_THROW_INTERNAL();
tmp4_done2:;
}
}
;
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outStore) { *out_outStore = _outStore; }
if (out_outDae) { *out_outDae = _outDae; }
if (out_outSets) { *out_outSets = _outSets; }
if (out_outState) { *out_outState = _outState; }
if (out_outVars) { *out_outVars = _outVars; }
if (out_outGraph) { *out_outGraph = _outGraph; }
if (out_outFieldDomOpt) { *out_outFieldDomOpt = _outFieldDomOpt; }
threadData->mmc_jumper = old_mmc_jumper;
return _outCache;
}
modelica_metatype boxptr_Inst_instElement2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inElement, modelica_metatype _inInstDims, modelica_metatype _inImplicit, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype _inStopOnError, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outVars, modelica_metatype *out_outGraph, modelica_metatype *out_outFieldDomOpt)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImplicit);
tmp2 = mmc_unbox_integer(_inStopOnError);
_outCache = omc_Inst_instElement2(threadData, _inCache, _inEnv, _inIH, _inStore, _inMod, _inPrefix, _inState, _inElement, _inInstDims, tmp1, _inCallingScope, _inGraph, _inSets, tmp2, out_outEnv, out_outIH, out_outStore, out_outDae, out_outSets, out_outState, out_outVars, out_outGraph, out_outFieldDomOpt);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Inst_getSortedElementOrdering__comp(threadData_t *threadData, modelica_metatype _inElement1, modelica_metatype _inElement2)
{
modelica_boolean _outEqual;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outEqual = omc_SCodeUtil_elementNameEqual(threadData, _inElement1, omc_Util_tuple21(threadData, _inElement2));
_return: OMC_LABEL_UNUSED
return _outEqual;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_getSortedElementOrdering__comp(threadData_t *threadData, modelica_metatype _inElement1, modelica_metatype _inElement2)
{
modelica_boolean _outEqual;
modelica_metatype out_outEqual;
_outEqual = omc_Inst_getSortedElementOrdering__comp(threadData, _inElement1, _inElement2);
out_outEqual = mmc_mk_icon(_outEqual);
return out_outEqual;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getSortedElementOrdering(threadData_t *threadData, modelica_metatype _inElements, modelica_metatype _inSortedElements)
{
modelica_metatype _outIndices = NULL;
modelica_metatype tmpMeta1;
modelica_metatype _index_map = NULL;
modelica_metatype tmpMeta2;
modelica_metatype _sorted_el = NULL;
modelica_integer _i;
modelica_metatype tmpMeta3;
modelica_metatype tmpMeta4;
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_integer tmp15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
tmpMeta1 = MMC_REFSTRUCTLIT(mmc_nil);
_outIndices = tmpMeta1;
tmpMeta2 = MMC_REFSTRUCTLIT(mmc_nil);
_index_map = tmpMeta2;
_i = ((modelica_integer) 1);
{
modelica_metatype _e;
for (tmpMeta3 = _inElements; !listEmpty(tmpMeta3); tmpMeta3=MMC_CDR(tmpMeta3))
{
_e = MMC_CAR(tmpMeta3);
tmpMeta5 = mmc_mk_box2(0, omc_Util_tuple21(threadData, _e), mmc_mk_integer(_i));
tmpMeta4 = mmc_mk_cons(tmpMeta5, _index_map);
_index_map = tmpMeta4;
_i = ((modelica_integer) 1) + _i;
}
}
_index_map = listReverse(_index_map);
{
modelica_metatype __omcQ_24tmpVar1;
modelica_metatype* tmp8;
modelica_metatype tmpMeta9;
modelica_metatype __omcQ_24tmpVar0;
modelica_integer tmp10;
modelica_metatype _e_loopVar = 0;
modelica_metatype _e;
_e_loopVar = _inSortedElements;
tmpMeta9 = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar1 = tmpMeta9;
tmp8 = &__omcQ_24tmpVar1;
while(1) {
tmp10 = 1;
if (!listEmpty(_e_loopVar)) {
_e = MMC_CAR(_e_loopVar);
_e_loopVar = MMC_CDR(_e_loopVar);
tmp10--;
}
if (tmp10 == 0) {
__omcQ_24tmpVar0 = omc_Util_tuple21(threadData, _e);
*tmp8 = mmc_mk_cons(__omcQ_24tmpVar0,0);
tmp8 = &MMC_CDR(*tmp8);
} else if (tmp10 == 1) {
break;
} else {
MMC_THROW_INTERNAL();
}
}
*tmp8 = mmc_mk_nil();
tmpMeta7 = __omcQ_24tmpVar1;
}
_sorted_el = tmpMeta7;
{
modelica_metatype _e;
for (tmpMeta11 = _sorted_el; !listEmpty(tmpMeta11); tmpMeta11=MMC_CDR(tmpMeta11))
{
_e = MMC_CAR(tmpMeta11);
tmpMeta16 = omc_List_deleteMemberOnTrue(threadData, _e, _index_map, boxvar_Inst_getSortedElementOrdering__comp, &tmpMeta12);
_index_map = tmpMeta16;
if (optionNone(tmpMeta12)) MMC_THROW_INTERNAL();
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta12), 1));
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 2));
tmp15 = mmc_unbox_integer(tmpMeta14);
_i = tmp15;
tmpMeta17 = mmc_mk_cons(mmc_mk_integer(_i), _outIndices);
_outIndices = tmpMeta17;
}
}
_outIndices = listReverse(_outIndices);
_return: OMC_LABEL_UNUSED
return _outIndices;
}
DLLExport
modelica_metatype omc_Inst_instElementList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inElements, modelica_metatype _inInstDims, modelica_boolean _inImplInst, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_boolean _inStopOnError, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outVars, modelica_metatype *out_outGraph, modelica_metatype *out_domainFieldsListOut)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outStore = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype _outSets = NULL;
modelica_metatype _outState = NULL;
modelica_metatype _outVars = NULL;
modelica_metatype _outGraph = NULL;
modelica_metatype _domainFieldsListOut = NULL;
modelica_metatype tmpMeta1;
modelica_metatype _el = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _vars = NULL;
modelica_metatype _dae = NULL;
modelica_metatype _varsl = NULL;
modelica_metatype tmpMeta2;
modelica_metatype _dael = NULL;
modelica_metatype tmpMeta3;
modelica_metatype _fieldDomOpt = NULL;
modelica_metatype _element_order = NULL;
modelica_metatype _el_arr = NULL;
modelica_metatype _var_arr = NULL;
modelica_metatype _dae_arr = NULL;
modelica_integer _length;
modelica_metatype tmpMeta4;
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _inCache;
_outEnv = _inEnv;
_outIH = _inIH;
_outStore = _inStore;
_outSets = _inSets;
_outState = _inState;
_outGraph = _inGraph;
tmpMeta1 = MMC_REFSTRUCTLIT(mmc_nil);
_domainFieldsListOut = tmpMeta1;
tmpMeta2 = MMC_REFSTRUCTLIT(mmc_nil);
_varsl = tmpMeta2;
tmpMeta3 = MMC_REFSTRUCTLIT(mmc_nil);
_dael = tmpMeta3;
_cache = omc_InstUtil_pushStructuralParameters(threadData, _inCache);
_el = omc_InstUtil_sortElementList(threadData, _inElements, _inEnv, omc_FGraph_inFunctionScope(threadData, _inEnv));
_el = omc_InstUtil_sortInnerFirstTplLstElementMod(threadData, _el);
if((!omc_ClassInf_isFunction(threadData, _inState)))
{
_element_order = omc_Inst_getSortedElementOrdering(threadData, _inElements, _el);
_el_arr = listArray(_inElements);
_length = listLength(_el);
tmpMeta4 = MMC_REFSTRUCTLIT(mmc_nil);
_var_arr = arrayCreate(_length, tmpMeta4);
tmpMeta5 = MMC_REFSTRUCTLIT(mmc_nil);
_dae_arr = arrayCreate(_length, tmpMeta5);
{
modelica_metatype _idx;
for (tmpMeta6 = _element_order; !listEmpty(tmpMeta6); tmpMeta6=MMC_CDR(tmpMeta6))
{
_idx = MMC_CAR(tmpMeta6);
_cache = omc_Inst_instElement2(threadData, _cache, _outEnv, _outIH, _outStore, _inMod, _inPrefix, _outState, arrayGet(_el_arr,mmc_unbox_integer(_idx)) /* DAE.ASUB */, _inInstDims, _inImplInst, _inCallingScope, _outGraph, _outSets, _inStopOnError ,&_outEnv ,&_outIH ,&_outStore ,&_dae ,&_outSets ,&_outState ,&_vars ,&_outGraph ,&_fieldDomOpt);
arrayUpdate(_var_arr, ((modelica_integer) 1) + _length - (mmc_unbox_integer(_idx)), _vars);
arrayUpdate(_dae_arr, ((modelica_integer) 1) + _length - (mmc_unbox_integer(_idx)), _dae);
if((omc_Flags_getConfigEnum(threadData, _OMC_LIT366) == ((modelica_integer) 5)))
{
_domainFieldsListOut = omc_InstUtil_optAppendField(threadData, _domainFieldsListOut, _fieldDomOpt);
}
}
}
{
modelica_metatype __omcQ_24tmpVar3;
modelica_metatype tmpMeta9;
modelica_metatype __omcQ_24tmpVar2;
modelica_integer tmp10;
modelica_metatype _lst_loopVar = 0;
modelica_integer tmp11;
modelica_metatype _lst;
_lst_loopVar = _var_arr;
tmp11 = 1;
tmpMeta9 = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar3 = tmpMeta9;
while(1) {
tmp10 = 1;
if (tmp11 <= arrayLength(_lst_loopVar)) {
_lst = arrayGet(_lst_loopVar, tmp11++);
tmp10--;
}
if (tmp10 == 0) {
__omcQ_24tmpVar2 = _lst;
__omcQ_24tmpVar3 = listAppend(__omcQ_24tmpVar2, __omcQ_24tmpVar3);
} else if (tmp10 == 1) {
break;
} else {
MMC_THROW_INTERNAL();
}
}
tmpMeta8 = __omcQ_24tmpVar3;
}
_outVars = tmpMeta8;
{
modelica_metatype __omcQ_24tmpVar5;
modelica_metatype tmpMeta13;
modelica_metatype __omcQ_24tmpVar4;
modelica_integer tmp14;
modelica_metatype _lst_loopVar = 0;
modelica_integer tmp15;
modelica_metatype _lst;
_lst_loopVar = _dae_arr;
tmp15 = 1;
tmpMeta13 = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar5 = tmpMeta13;
while(1) {
tmp14 = 1;
if (tmp15 <= arrayLength(_lst_loopVar)) {
_lst = arrayGet(_lst_loopVar, tmp15++);
tmp14--;
}
if (tmp14 == 0) {
__omcQ_24tmpVar4 = _lst;
__omcQ_24tmpVar5 = listAppend(__omcQ_24tmpVar4, __omcQ_24tmpVar5);
} else if (tmp14 == 1) {
break;
} else {
MMC_THROW_INTERNAL();
}
}
tmpMeta12 = __omcQ_24tmpVar5;
}
tmpMeta16 = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta12);
_outDae = tmpMeta16;
omc_GCExt_free(threadData, _var_arr);
omc_GCExt_free(threadData, _dae_arr);
}
else
{
{
modelica_metatype _e;
for (tmpMeta17 = _el; !listEmpty(tmpMeta17); tmpMeta17=MMC_CDR(tmpMeta17))
{
_e = MMC_CAR(tmpMeta17);
_cache = omc_Inst_instElement2(threadData, _cache, _outEnv, _outIH, _outStore, _inMod, _inPrefix, _outState, _e, _inInstDims, _inImplInst, _inCallingScope, _outGraph, _outSets, _inStopOnError ,&_outEnv ,&_outIH ,&_outStore ,&_dae ,&_outSets ,&_outState ,&_vars ,&_outGraph ,&_fieldDomOpt);
tmpMeta18 = mmc_mk_cons(_vars, _varsl);
_varsl = tmpMeta18;
tmpMeta19 = mmc_mk_cons(_dae, _dael);
_dael = tmpMeta19;
}
}
_outVars = omc_List_flattenReverse(threadData, _varsl);
tmpMeta21 = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, omc_List_flattenReverse(threadData, _dael));
_outDae = tmpMeta21;
}
_outCache = omc_InstUtil_popStructuralParameters(threadData, _cache, _inPrefix);
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outStore) { *out_outStore = _outStore; }
if (out_outDae) { *out_outDae = _outDae; }
if (out_outSets) { *out_outSets = _outSets; }
if (out_outState) { *out_outState = _outState; }
if (out_outVars) { *out_outVars = _outVars; }
if (out_outGraph) { *out_outGraph = _outGraph; }
if (out_domainFieldsListOut) { *out_domainFieldsListOut = _domainFieldsListOut; }
return _outCache;
}
modelica_metatype boxptr_Inst_instElementList(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inElements, modelica_metatype _inInstDims, modelica_metatype _inImplInst, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype _inStopOnError, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outVars, modelica_metatype *out_outGraph, modelica_metatype *out_domainFieldsListOut)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImplInst);
tmp2 = mmc_unbox_integer(_inStopOnError);
_outCache = omc_Inst_instElementList(threadData, _inCache, _inEnv, _inIH, _inStore, _inMod, _inPrefix, _inState, _inElements, _inInstDims, tmp1, _inCallingScope, _inGraph, _inSets, tmp2, out_outEnv, out_outIH, out_outStore, out_outDae, out_outSets, out_outState, out_outVars, out_outGraph, out_domainFieldsListOut);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_partialInstClassdef(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inClass, modelica_metatype _inClassDef, modelica_metatype _inVisibility, modelica_metatype _inInstDims, modelica_integer _numIter, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outState, modelica_metatype *out_outVars)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outState = NULL;
modelica_metatype _outVars = NULL;
modelica_metatype tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp5_1;
tmp5_1 = _inClassDef;
{
modelica_metatype _partial_prefix = NULL;
modelica_string _class_name = NULL;
modelica_string _scope_str = NULL;
modelica_metatype _cdef_els = NULL;
modelica_metatype _class_ext_els = NULL;
modelica_metatype _extends_els = NULL;
modelica_metatype _emods = NULL;
modelica_metatype _mod = NULL;
modelica_metatype _class_mod = NULL;
modelica_metatype _smod = NULL;
modelica_metatype _ext_comps = NULL;
modelica_metatype _const_els = NULL;
modelica_metatype _class_path = NULL;
modelica_metatype _class_dims = NULL;
modelica_metatype _cls = NULL;
modelica_metatype _cdef = NULL;
modelica_metatype _cenv = NULL;
modelica_metatype _parent_env = NULL;
modelica_metatype _der_re = NULL;
modelica_metatype _parent_re = NULL;
modelica_metatype _enc = NULL;
modelica_metatype _info = NULL;
modelica_metatype _eq = NULL;
modelica_metatype _dims = NULL;
modelica_metatype tmpMeta3;
modelica_boolean _has_dims;
modelica_boolean _is_basic_type;
modelica_metatype _inst_dims = NULL;
modelica_metatype _scope_ty = NULL;
volatile mmc_switch_type tmp5;
int tmp6;
tmpMeta3 = MMC_REFSTRUCTLIT(mmc_nil);
_dims = tmpMeta3;
tmp5 = 0;
for (; tmp5 < 2; tmp5++) {
switch (MMC_SWITCH_CAST(tmp5)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp5_1,0,8) == 0) goto tmp4_end;
_partial_prefix = omc_SCodeUtil_getClassPartialPrefix(threadData, _inClass);
_partial_prefix = omc_InstUtil_isPartial(threadData, _partial_prefix, _inMod);
_class_name = omc_SCodeUtil_elementName(threadData, _inClass);
_outState = omc_ClassInf_trans(threadData, _inState, _OMC_LIT397);
_cdef_els = omc_InstUtil_splitElts(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inClassDef), 2))) ,&_class_ext_els ,&_extends_els, NULL);
_extends_els = omc_SCodeInstUtil_addRedeclareAsElementsToExtends(threadData, _extends_els, omc_List_select(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inClassDef), 2))), boxvar_SCodeUtil_isRedeclareElement));
_outCache = omc_InstUtil_addClassdefsToEnv(threadData, _inCache, _inEnv, _inIH, _inPrefix, _cdef_els, 1, mmc_mk_some(_inMod), omc_FGraph_isEmptyScope(threadData, _inEnv) ,&_outEnv ,&_outIH);
_outCache = omc_InstExtends_instExtendsAndClassExtendsList(threadData, _outCache, _outEnv, _outIH, _inMod, _inPrefix, _extends_els, _class_ext_els, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inClassDef), 2))), _inState, _class_name, 1, 1 ,&_outEnv ,&_outIH ,&_emods ,&_ext_comps, NULL, NULL, NULL, NULL, NULL);
_const_els = listAppend(_ext_comps, omc_InstUtil_addNomod(threadData, omc_InstUtil_constantEls(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inClassDef), 2))))));
_mod = omc_Mod_merge(threadData, _inMod, _emods, _class_name, 1);
_cdef_els = omc_InstUtil_classdefElts2(threadData, _ext_comps, _partial_prefix ,&_ext_comps);
_outCache = omc_InstUtil_addClassdefsToEnv(threadData, _outCache, _outEnv, _outIH, _inPrefix, _cdef_els, 1, mmc_mk_some(_mod), 0 ,&_outEnv ,&_outIH);
_outCache = omc_InstUtil_addComponentsToEnv(threadData, _outCache, _outEnv, _outIH, _mod, _inPrefix, _inState, _const_els, 0 ,&_outEnv ,&_outIH);
_outCache = omc_Inst_instElementList(threadData, _outCache, _outEnv, _outIH, _OMC_LIT6, _mod, _inPrefix, _outState, _const_els, _inInstDims, 1, _OMC_LIT27, _OMC_LIT10, _OMC_LIT14, 0 ,&_outEnv ,&_outIH ,NULL ,NULL ,NULL ,&_outState ,&_outVars ,NULL ,NULL);
tmpMeta[0+0] = _outCache;
tmpMeta[0+1] = _outEnv;
tmpMeta[0+2] = _outIH;
tmpMeta[0+3] = _outState;
tmpMeta[0+4] = _outVars;
goto tmp4_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
modelica_metatype tmpMeta29;
modelica_metatype tmpMeta30;
modelica_metatype tmpMeta31;
modelica_metatype tmpMeta32;
if (mmc__uniontype__metarecord__typedef__equal(tmp5_1,2,3) == 0) goto tmp4_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp5_1), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,0,2) == 0) goto tmp4_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 2));
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 3));
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp5_1), 3));
_class_path = tmpMeta8;
_class_dims = tmpMeta9;
_class_mod = tmpMeta10;
_info = omc_SCodeUtil_elementInfo(threadData, _inClass);
_has_dims = (!(isNone(_class_dims) || valueEq(_class_dims, _OMC_LIT398)));
{
{
volatile mmc_switch_type tmp13;
int tmp14;
tmp13 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp12_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp13 < 2; tmp13++) {
switch (MMC_SWITCH_CAST(tmp13)) {
case 0: {
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
tmpMeta17 = omc_Lookup_lookupClass(threadData, _inCache, _inEnv, _class_path, mmc_mk_some(_info), &tmpMeta15, &tmpMeta16);
_outCache = tmpMeta17;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta15,2,8) == 0) goto goto_11;
_cls = tmpMeta15;
_cenv = tmpMeta16;
goto tmp12_done;
}
case 1: {
modelica_metatype tmpMeta18;
_class_name = omc_AbsynUtil_pathString(threadData, _class_path, _OMC_LIT5, 1, 0);
_scope_str = omc_FGraph_printGraphPathStr(threadData, _inEnv);
tmpMeta18 = mmc_mk_cons(_class_name, mmc_mk_cons(_scope_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessageAndFail(threadData, _OMC_LIT401, tmpMeta18, _info);
goto tmp12_done;
}
}
goto tmp12_end;
tmp12_end: ;
}
goto goto_11;
tmp12_done:
(void)tmp13;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp12_done2;
goto_11:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp13 < 2) {
goto tmp12_top;
}
goto goto_2;
tmp12_done2:;
}
}
;
tmpMeta19 = _cls;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta19,2,8) == 0) goto goto_2;
tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta19), 2));
tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta19), 4));
tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta19), 6));
_class_name = tmpMeta20;
_enc = tmpMeta21;
_der_re = tmpMeta22;
_parent_re = omc_SCodeUtil_getClassRestriction(threadData, _inClass);
_is_basic_type = omc_InstUtil_checkDerivedRestriction(threadData, _parent_re, _der_re, _class_name);
_smod = omc_InstUtil_chainRedeclares(threadData, _inMod, _class_mod);
_parent_env = omc_FGraph_stripLastScopeRef(threadData, _inEnv, NULL);
tmpMeta23 = mmc_mk_box2(5, &Mod_ModScope_DERIVED__desc, _class_path);
_outCache = omc_Mod_elabMod(threadData, _outCache, _parent_env, _inIH, _inPrefix, _smod, 0, tmpMeta23, _info ,&_mod);
_mod = omc_Mod_merge(threadData, _inMod, _mod, _class_name, 1);
if((_has_dims && (!_is_basic_type)))
{
_cls = omc_SCodeUtil_setClassName(threadData, _class_name, _cls);
_eq = omc_Mod_modEquation(threadData, _mod);
_outCache = omc_InstUtil_elabArraydimOpt(threadData, _outCache, _parent_env, _OMC_LIT402, _class_path, _class_dims, _eq, 0, 1, _inPrefix, _info, _inInstDims ,&_dims);
_inst_dims = omc_List_appendLastList(threadData, _inInstDims, _dims);
}
else
{
_inst_dims = _inInstDims;
}
if((_is_basic_type || _has_dims))
{
_scope_ty = (_is_basic_type?omc_FGraph_restrictionToScopeType(threadData, _der_re):omc_FGraph_classInfToScopeType(threadData, _inState));
_cenv = omc_FGraph_openScope(threadData, _cenv, _enc, _class_name, _scope_ty);
_outState = omc_ClassInf_start(threadData, _der_re, omc_FGraph_getGraphName(threadData, _cenv));
_outCache = omc_Inst_partialInstClassIn(threadData, _outCache, _cenv, _inIH, _mod, _inPrefix, _outState, _cls, _inVisibility, _inst_dims, _numIter ,&_outEnv ,&_outIH ,&_outState ,&_outVars);
}
else
{
tmpMeta25 = mmc_mk_box6(4, &SCode_Element_EXTENDS__desc, _class_path, _inVisibility, _OMC_LIT16, mmc_mk_none(), _info);
tmpMeta24 = mmc_mk_cons(tmpMeta25, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta26 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta27 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta28 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta29 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta30 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta31 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta32 = mmc_mk_box9(3, &SCode_ClassDef_PARTS__desc, tmpMeta24, tmpMeta26, tmpMeta27, tmpMeta28, tmpMeta29, tmpMeta30, tmpMeta31, mmc_mk_none());
_cdef = tmpMeta32;
_outCache = omc_Inst_partialInstClassdef(threadData, _outCache, _inEnv, _inIH, _mod, _inPrefix, _inState, _inClass, _cdef, _inVisibility, _inInstDims, _numIter ,&_outEnv ,&_outIH ,&_outState ,&_outVars);
}
if(omc_SCodeUtil_isPartial(threadData, _cls))
{
_outEnv = omc_FGraph_makeScopePartial(threadData, _inEnv);
}
tmpMeta[0+0] = _outCache;
tmpMeta[0+1] = _outEnv;
tmpMeta[0+2] = _outIH;
tmpMeta[0+3] = _outState;
tmpMeta[0+4] = _outVars;
goto tmp4_done;
}
}
goto tmp4_end;
tmp4_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp4_done;
tmp4_done:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outState = tmpMeta[0+3];
_outVars = tmpMeta[0+4];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outState) { *out_outState = _outState; }
if (out_outVars) { *out_outVars = _outVars; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_partialInstClassdef(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inClass, modelica_metatype _inClassDef, modelica_metatype _inVisibility, modelica_metatype _inInstDims, modelica_metatype _numIter, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outState, modelica_metatype *out_outVars)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_numIter);
_outCache = omc_Inst_partialInstClassdef(threadData, _inCache, _inEnv, _inIH, _inMod, _inPrefix, _inState, _inClass, _inClassDef, _inVisibility, _inInstDims, tmp1, out_outEnv, out_outIH, out_outState, out_outVars);
return _outCache;
}
PROTECTED_FUNCTION_STATIC void omc_Inst_instBasictypeBaseclass2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv1, modelica_metatype _inIH, modelica_metatype _store, modelica_metatype _inSCodeElementLst2, modelica_metatype _inSCodeElementLst3, modelica_metatype _inMod4, modelica_metatype _inInstDims5, modelica_string _className, modelica_metatype _inInfo, modelica_metatype _stopInst)
{
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp3_1;volatile modelica_metatype tmp3_2;volatile modelica_metatype tmp3_3;volatile modelica_metatype tmp3_4;volatile modelica_metatype tmp3_5;volatile modelica_metatype tmp3_6;
tmp3_1 = _inCache;
tmp3_2 = _inEnv1;
tmp3_3 = _inIH;
tmp3_4 = _inSCodeElementLst2;
tmp3_5 = _inSCodeElementLst3;
tmp3_6 = _inInstDims5;
{
modelica_metatype _m_1 = NULL;
modelica_metatype _cdef = NULL;
modelica_metatype _cdef_1 = NULL;
modelica_metatype _cenv = NULL;
modelica_metatype _env = NULL;
modelica_metatype _ty = NULL;
modelica_boolean _b1;
modelica_boolean _b2;
modelica_metatype _path = NULL;
modelica_metatype _mod = NULL;
modelica_metatype _inst_dims = NULL;
modelica_string _classname = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _ih = NULL;
modelica_metatype _info = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp2_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_boolean tmp13;
modelica_metatype tmpMeta14;
if (listEmpty(tmp3_5)) goto tmp2_end;
tmpMeta5 = MMC_CAR(tmp3_5);
tmpMeta6 = MMC_CDR(tmp3_5);
if (listEmpty(tmp3_4)) goto tmp2_end;
tmpMeta7 = MMC_CAR(tmp3_4);
tmpMeta8 = MMC_CDR(tmp3_4);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,1,5) == 0) goto tmp2_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 2));
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 4));
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 6));
if (!listEmpty(tmpMeta8)) goto tmp2_end;
_path = tmpMeta9;
_mod = tmpMeta10;
_info = tmpMeta11;
_cache = tmp3_1;
_env = tmp3_2;
_ih = tmp3_3;
_inst_dims = tmp3_6;
tmpMeta12 = mmc_mk_box2(5, &Mod_ModScope_DERIVED__desc, _path);
_cache = omc_Mod_elabModForBasicType(threadData, _cache, _env, _ih, _OMC_LIT8, _mod, 1, tmpMeta12, _inInfo ,&_m_1);
_cache = omc_Lookup_lookupClass(threadData, _cache, _env, _path, mmc_mk_some(_info) ,&_cdef ,&_cenv);
_cdef_1 = omc_SCodeUtil_classSetPartial(threadData, _cdef, _OMC_LIT375);
_cache = omc_Inst_instClass(threadData, _cache, _cenv, _ih, _store, _m_1, _OMC_LIT8, _cdef_1, _inst_dims, 0, _OMC_LIT27, _OMC_LIT10, _OMC_LIT14 ,NULL ,&_ih ,NULL ,NULL ,NULL ,&_ty ,NULL ,NULL ,NULL);
_b1 = omc_Types_basicType(threadData, _ty);
_b2 = omc_Types_arrayType(threadData, _ty);
tmp13 = (_b1 || _b2);
if (1 != tmp13) goto goto_1;
_classname = omc_FGraph_printGraphPathStr(threadData, _env);
omc_ErrorExt_rollBack(threadData, _OMC_LIT403);
tmpMeta14 = mmc_mk_cons(_classname, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT406, tmpMeta14, _inInfo);
omc_Mutable_update(threadData, _stopInst, mmc_mk_boolean(1));
goto tmp2_done;
}
case 1: {
omc_ErrorExt_rollBack(threadData, _OMC_LIT403);
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
tmp2_done:
(void)tmp3;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp2_done2;
goto_1:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp3 < 2) {
goto tmp2_top;
}
MMC_THROW_INTERNAL();
tmp2_done2:;
}
}
;
_return: OMC_LABEL_UNUSED
return;
}
PROTECTED_FUNCTION_STATIC void omc_Inst_rollbackCheck(threadData_t *threadData, modelica_metatype _p)
{
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
{
modelica_string _n = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp2_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
modelica_boolean tmp5;
_n = omc_AbsynUtil_pathString(threadData, _p, _OMC_LIT5, 1, 0);
tmp5 = omc_InstUtil_isBuiltInClass(threadData, _n);
if (1 != tmp5) goto goto_1;
omc_ErrorExt_rollBack(threadData, _OMC_LIT407);
goto tmp2_done;
}
case 1: {
omc_ErrorExt_rollBack(threadData, _OMC_LIT407);
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
tmp2_done:
(void)tmp3;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp2_done2;
goto_1:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp3 < 2) {
goto tmp2_top;
}
MMC_THROW_INTERNAL();
tmp2_done2:;
}
}
;
_return: OMC_LABEL_UNUSED
return;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instBasictypeBaseclass(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inSCodeElementLst2, modelica_metatype _inSCodeElementLst3, modelica_metatype _inMod4, modelica_metatype _inInstDims5, modelica_string _className, modelica_metatype _info, modelica_metatype _stopInst, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outTypesTypeOption, modelica_metatype *out_outTypeVars)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outStore = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype _outTypesTypeOption = NULL;
modelica_metatype _outTypeVars = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;volatile modelica_metatype tmp4_5;volatile modelica_metatype tmp4_6;volatile modelica_metatype tmp4_7;volatile modelica_metatype tmp4_8;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inIH;
tmp4_4 = _inStore;
tmp4_5 = _inSCodeElementLst2;
tmp4_6 = _inSCodeElementLst3;
tmp4_7 = _inMod4;
tmp4_8 = _inInstDims5;
{
modelica_metatype _m_1 = NULL;
modelica_metatype _m_2 = NULL;
modelica_metatype _mods = NULL;
modelica_metatype _cdef = NULL;
modelica_metatype _cenv = NULL;
modelica_metatype _env = NULL;
modelica_metatype _dae = NULL;
modelica_metatype _ty = NULL;
modelica_metatype _tys = NULL;
modelica_boolean _b1;
modelica_boolean _b2;
modelica_boolean _b3;
modelica_metatype _path = NULL;
modelica_metatype _mod = NULL;
modelica_metatype _inst_dims = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _ih = NULL;
modelica_metatype _store = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 3; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_boolean tmp11;
if (!listEmpty(tmp4_6)) goto tmp3_end;
if (listEmpty(tmp4_5)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_5);
tmpMeta7 = MMC_CDR(tmp4_5);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,1,5) == 0) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 4));
if (!listEmpty(tmpMeta7)) goto tmp3_end;
_path = tmpMeta8;
_mod = tmpMeta9;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_7;
_inst_dims = tmp4_8;
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT407);
tmpMeta10 = mmc_mk_box2(5, &Mod_ModScope_DERIVED__desc, _path);
_cache = omc_Mod_elabModForBasicType(threadData, _cache, _env, _ih, _OMC_LIT8, _mod, 1, tmpMeta10, _info ,&_m_1);
_m_2 = omc_Mod_merge(threadData, _mods, _m_1, _className, 1);
_cache = omc_Lookup_lookupClass(threadData, _cache, _env, _path, mmc_mk_some(_info) ,&_cdef ,&_cenv);
_cache = omc_Inst_instClassBasictype(threadData, _cache, _cenv, _ih, _store, _m_2, _OMC_LIT8, _cdef, _inst_dims, 0, _OMC_LIT27, _OMC_LIT14 ,NULL ,&_ih ,&_store ,&_dae ,NULL ,&_ty ,&_tys ,NULL);
_b1 = omc_Types_basicType(threadData, _ty);
_b2 = omc_Types_arrayType(threadData, _ty);
_b3 = omc_Types_extendsBasicType(threadData, _ty);
tmp11 = (_b1 || (_b2 || _b3));
if (1 != tmp11) goto goto_2;
omc_ErrorExt_rollBack(threadData, _OMC_LIT407);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _ih;
tmpMeta[0+2] = _store;
tmpMeta[0+3] = _dae;
tmpMeta[0+4] = mmc_mk_some(_ty);
tmpMeta[0+5] = _tys;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
if (!listEmpty(tmp4_6)) goto tmp3_end;
if (listEmpty(tmp4_5)) goto tmp3_end;
tmpMeta12 = MMC_CAR(tmp4_5);
tmpMeta13 = MMC_CDR(tmp4_5);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta12,1,5) == 0) goto tmp3_end;
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta12), 2));
if (!listEmpty(tmpMeta13)) goto tmp3_end;
_path = tmpMeta14;
omc_Inst_rollbackCheck(threadData, _path);
goto goto_2;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_boolean tmp17;
if (listEmpty(tmp4_5)) goto tmp3_end;
tmpMeta15 = MMC_CAR(tmp4_5);
tmpMeta16 = MMC_CDR(tmp4_5);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta15,1,5) == 0) goto tmp3_end;
if (!listEmpty(tmpMeta16)) goto tmp3_end;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_7;
_inst_dims = tmp4_8;
tmp17 = listEmpty(_inSCodeElementLst3);
if (0 != tmp17) goto goto_2;
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT403);
omc_Inst_instBasictypeBaseclass2(threadData, _cache, _env, _ih, _store, _inSCodeElementLst2, _inSCodeElementLst3, _mods, _inst_dims, _className, _info, _stopInst);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 3) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outIH = tmpMeta[0+1];
_outStore = tmpMeta[0+2];
_outDae = tmpMeta[0+3];
_outTypesTypeOption = tmpMeta[0+4];
_outTypeVars = tmpMeta[0+5];
_return: OMC_LABEL_UNUSED
if (out_outIH) { *out_outIH = _outIH; }
if (out_outStore) { *out_outStore = _outStore; }
if (out_outDae) { *out_outDae = _outDae; }
if (out_outTypesTypeOption) { *out_outTypesTypeOption = _outTypesTypeOption; }
if (out_outTypeVars) { *out_outTypeVars = _outTypeVars; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instClassDefHelper(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inSpecs, modelica_metatype _inPre, modelica_metatype _inInstDims, modelica_boolean _inImpl, modelica_metatype _accTypes, modelica_metatype _inSets, modelica_metatype _inInfo, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outType, modelica_metatype *out_outSets, modelica_metatype *out_outAttr)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outType = NULL;
modelica_metatype _outSets = NULL;
modelica_metatype _outAttr = NULL;
modelica_metatype tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;volatile modelica_metatype tmp4_5;volatile modelica_metatype tmp4_6;volatile modelica_boolean tmp4_7;volatile modelica_metatype tmp4_8;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inIH;
tmp4_4 = _inSpecs;
tmp4_5 = _inPre;
tmp4_6 = _inInstDims;
tmp4_7 = _inImpl;
tmp4_8 = _accTypes;
{
modelica_metatype _cache = NULL;
modelica_metatype _env = NULL;
modelica_metatype _cenv = NULL;
modelica_metatype _pre = NULL;
modelica_metatype _dims = NULL;
modelica_boolean _impl;
modelica_metatype _localAccTypes = NULL;
modelica_metatype _restTypeSpecs = NULL;
modelica_metatype _csets = NULL;
modelica_metatype _cn = NULL;
modelica_metatype _ty = NULL;
modelica_metatype _p = NULL;
modelica_metatype _c = NULL;
modelica_string _id = NULL;
modelica_metatype _tSpec = NULL;
modelica_metatype _oDA = NULL;
modelica_metatype _ih = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 4; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_4)) goto tmp3_end;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_localAccTypes = tmp4_8;
tmp4 += 3;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = listReverse(_localAccTypes);
tmpMeta[0+4] = _inSets;
tmpMeta[0+5] = mmc_mk_none();
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_boolean tmp12;
modelica_metatype tmpMeta13;
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_4);
tmpMeta7 = MMC_CDR(tmp4_4);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,0,2) == 0) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
_cn = tmpMeta8;
_restTypeSpecs = tmpMeta7;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_pre = tmp4_5;
_dims = tmp4_6;
_impl = tmp4_7;
_localAccTypes = tmp4_8;
tmpMeta11 = omc_Lookup_lookupClass(threadData, _cache, _env, _cn, mmc_mk_some(_inInfo), &tmpMeta9, &tmpMeta10);
_cache = tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta9,2,8) == 0) goto goto_2;
_c = tmpMeta9;
_cenv = tmpMeta10;
tmp12 = omc_SCodeUtil_isFunction(threadData, _c);
if (0 != tmp12) goto goto_2;
_cache = omc_Inst_instClass(threadData, _cache, _cenv, _ih, _OMC_LIT6, _OMC_LIT7, _pre, _c, _dims, _impl, _OMC_LIT27, _OMC_LIT10, _inSets ,&_cenv ,&_ih ,NULL ,NULL ,&_csets ,&_ty ,NULL ,&_oDA ,NULL);
tmpMeta13 = mmc_mk_cons(_ty, _localAccTypes);
_localAccTypes = tmpMeta13;
_cache = omc_Inst_instClassDefHelper(threadData, _cache, _env, _ih, _restTypeSpecs, _pre, _dims, _impl, _localAccTypes, _csets, _inInfo ,&_env ,&_ih ,&_localAccTypes ,&_csets ,NULL);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _localAccTypes;
tmpMeta[0+4] = _csets;
tmpMeta[0+5] = _oDA;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta14 = MMC_CAR(tmp4_4);
tmpMeta15 = MMC_CDR(tmp4_4);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta14,0,2) == 0) goto tmp3_end;
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 2));
_cn = tmpMeta16;
_restTypeSpecs = tmpMeta15;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_pre = tmp4_5;
_dims = tmp4_6;
_impl = tmp4_7;
_localAccTypes = tmp4_8;
tmp4 += 1;
_cache = omc_Lookup_lookupType(threadData, _cache, _env, _cn, mmc_mk_none() ,&_ty ,NULL);
tmpMeta17 = mmc_mk_cons(_ty, _localAccTypes);
_localAccTypes = tmpMeta17;
_cache = omc_Inst_instClassDefHelper(threadData, _cache, _env, _ih, _restTypeSpecs, _pre, _dims, _impl, _localAccTypes, _inSets, _inInfo ,&_env ,&_ih ,&_localAccTypes ,&_csets ,NULL);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _localAccTypes;
tmpMeta[0+4] = _csets;
tmpMeta[0+5] = mmc_mk_none();
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta18 = MMC_CAR(tmp4_4);
tmpMeta19 = MMC_CDR(tmp4_4);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta18,1,3) == 0) goto tmp3_end;
tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta18), 2));
_tSpec = tmpMeta18;
_p = tmpMeta20;
_restTypeSpecs = tmpMeta19;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_pre = tmp4_5;
_dims = tmp4_6;
_impl = tmp4_7;
_localAccTypes = tmp4_8;
_id = omc_AbsynUtil_pathString(threadData, _p, _OMC_LIT5, 1, 0);
tmpMeta21 = mmc_mk_box4(5, &SCode_ClassDef_DERIVED__desc, _tSpec, _OMC_LIT16, _OMC_LIT409);
tmpMeta22 = mmc_mk_box9(5, &SCode_Element_CLASS__desc, _id, _OMC_LIT373, _OMC_LIT374, _OMC_LIT375, _OMC_LIT376, tmpMeta21, _OMC_LIT261, _OMC_LIT269);
_c = tmpMeta22;
_cache = omc_Inst_instClass(threadData, _cache, _env, _ih, _OMC_LIT6, _OMC_LIT7, _pre, _c, _dims, _impl, _OMC_LIT27, _OMC_LIT10, _inSets ,NULL ,&_ih ,NULL ,NULL ,&_csets ,&_ty ,NULL ,&_oDA ,NULL);
tmpMeta23 = mmc_mk_cons(_ty, _localAccTypes);
_localAccTypes = tmpMeta23;
_cache = omc_Inst_instClassDefHelper(threadData, _cache, _env, _ih, _restTypeSpecs, _pre, _dims, _impl, _localAccTypes, _csets, _inInfo ,&_env ,&_ih ,&_localAccTypes ,&_csets ,NULL);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _localAccTypes;
tmpMeta[0+4] = _csets;
tmpMeta[0+5] = _oDA;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 4) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outType = tmpMeta[0+3];
_outSets = tmpMeta[0+4];
_outAttr = tmpMeta[0+5];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outType) { *out_outType = _outType; }
if (out_outSets) { *out_outSets = _outSets; }
if (out_outAttr) { *out_outAttr = _outAttr; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instClassDefHelper(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inSpecs, modelica_metatype _inPre, modelica_metatype _inInstDims, modelica_metatype _inImpl, modelica_metatype _accTypes, modelica_metatype _inSets, modelica_metatype _inInfo, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outType, modelica_metatype *out_outSets, modelica_metatype *out_outAttr)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImpl);
_outCache = omc_Inst_instClassDefHelper(threadData, _inCache, _inEnv, _inIH, _inSpecs, _inPre, _inInstDims, tmp1, _accTypes, _inSets, _inInfo, out_outEnv, out_outIH, out_outType, out_outSets, out_outAttr);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_joinExtAlgorithms(threadData_t *threadData, modelica_metatype _inAlg, modelica_metatype _inExtAlg, modelica_metatype _inCallingScope)
{
modelica_metatype _outAlg = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _inCallingScope;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,0) == 0) goto tmp3_end;
tmpMeta6 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta1 = tmpMeta6;
goto tmp3_done;
}
case 1: {
tmpMeta1 = listAppend(_inAlg, _inExtAlg);
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outAlg = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _outAlg;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_joinExtEquations(threadData_t *threadData, modelica_metatype _inEq, modelica_metatype _inExtEq, modelica_metatype _inCallingScope)
{
modelica_metatype _outEq = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _inCallingScope;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,0) == 0) goto tmp3_end;
tmpMeta6 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta1 = tmpMeta6;
goto tmp3_done;
}
case 1: {
tmpMeta1 = listAppend(_inEq, _inExtEq);
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outEq = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _outEq;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instClassdef2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod2, modelica_metatype _inPrefix3, modelica_metatype _inState5, modelica_string _className, modelica_metatype _inClassDef6, modelica_metatype _inRestriction7, modelica_metatype _inVisibility, modelica_metatype _inPartialPrefix, modelica_metatype _inEncapsulatedPrefix, modelica_metatype _inInstDims9, modelica_boolean _inImplicit, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype _instSingleCref, modelica_metatype _comment, modelica_metatype _info, modelica_metatype _stopInst, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outTypesVarLst, modelica_metatype *out_oty, modelica_metatype *out_optDerAttr, modelica_metatype *out_outEqualityConstraint, modelica_metatype *out_outGraph)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outStore = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype _outSets = NULL;
modelica_metatype _outState = NULL;
modelica_metatype _outTypesVarLst = NULL;
modelica_metatype _oty = NULL;
modelica_metatype _optDerAttr = NULL;
modelica_metatype _outEqualityConstraint = NULL;
modelica_metatype _outGraph = NULL;
modelica_metatype tmpMeta[12] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;volatile modelica_metatype tmp4_5;volatile modelica_metatype tmp4_6;volatile modelica_metatype tmp4_7;volatile modelica_metatype tmp4_8;volatile modelica_metatype tmp4_9;volatile modelica_metatype tmp4_10;volatile modelica_metatype tmp4_11;volatile modelica_metatype tmp4_12;volatile modelica_metatype tmp4_13;volatile modelica_boolean tmp4_14;volatile modelica_metatype tmp4_15;volatile modelica_metatype tmp4_16;volatile modelica_metatype tmp4_17;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inIH;
tmp4_4 = _inStore;
tmp4_5 = _inMod2;
tmp4_6 = _inPrefix3;
tmp4_7 = _inState5;
tmp4_8 = _inClassDef6;
tmp4_9 = _inRestriction7;
tmp4_10 = _inVisibility;
tmp4_11 = _inPartialPrefix;
tmp4_12 = _inEncapsulatedPrefix;
tmp4_13 = _inInstDims9;
tmp4_14 = _inImplicit;
tmp4_15 = _inCallingScope;
tmp4_16 = _inGraph;
tmp4_17 = _inSets;
{
modelica_metatype _cdefelts = NULL;
modelica_metatype _compelts = NULL;
modelica_metatype _extendselts = NULL;
modelica_metatype _els = NULL;
modelica_metatype _extendsclasselts = NULL;
modelica_metatype _compelts_2_elem = NULL;
modelica_metatype _env1 = NULL;
modelica_metatype _env2 = NULL;
modelica_metatype _env3 = NULL;
modelica_metatype _env = NULL;
modelica_metatype _env5 = NULL;
modelica_metatype _cenv = NULL;
modelica_metatype _cenv_2 = NULL;
modelica_metatype _env_2 = NULL;
modelica_metatype _parentEnv = NULL;
modelica_metatype _parentClassEnv = NULL;
modelica_metatype _cdefelts_1 = NULL;
modelica_metatype _extcomps = NULL;
modelica_metatype _compelts_1 = NULL;
modelica_metatype _compelts_2 = NULL;
modelica_metatype _comp_cond = NULL;
modelica_metatype _csets = NULL;
modelica_metatype _csets1 = NULL;
modelica_metatype _csets2 = NULL;
modelica_metatype _csets3 = NULL;
modelica_metatype _csets4 = NULL;
modelica_metatype _csets5 = NULL;
modelica_metatype _csets_1 = NULL;
modelica_metatype _dae1 = NULL;
modelica_metatype _dae2 = NULL;
modelica_metatype _dae3 = NULL;
modelica_metatype _dae4 = NULL;
modelica_metatype _dae5 = NULL;
modelica_metatype _dae6 = NULL;
modelica_metatype _dae7 = NULL;
modelica_metatype _dae8 = NULL;
modelica_metatype _dae = NULL;
modelica_metatype _ci_state1 = NULL;
modelica_metatype _ci_state = NULL;
modelica_metatype _ci_state2 = NULL;
modelica_metatype _ci_state3 = NULL;
modelica_metatype _ci_state4 = NULL;
modelica_metatype _ci_state5 = NULL;
modelica_metatype _ci_state6 = NULL;
modelica_metatype _new_ci_state = NULL;
modelica_metatype _ci_state_1 = NULL;
modelica_metatype _vars = NULL;
modelica_metatype _bc = NULL;
modelica_metatype _mods = NULL;
modelica_metatype _emods = NULL;
modelica_metatype _mod_1 = NULL;
modelica_metatype _mods_1 = NULL;
modelica_metatype _checkMods = NULL;
modelica_metatype _pre = NULL;
modelica_metatype _eqs = NULL;
modelica_metatype _initeqs = NULL;
modelica_metatype _eqs2 = NULL;
modelica_metatype _initeqs2 = NULL;
modelica_metatype _eqs_1 = NULL;
modelica_metatype _initeqs_1 = NULL;
modelica_metatype _alg = NULL;
modelica_metatype _initalg = NULL;
modelica_metatype _alg2 = NULL;
modelica_metatype _initalg2 = NULL;
modelica_metatype _alg_1 = NULL;
modelica_metatype _initalg_1 = NULL;
modelica_metatype _constrs = NULL;
modelica_metatype _clsattrs = NULL;
modelica_metatype _re = NULL;
modelica_metatype _r = NULL;
modelica_boolean _impl;
modelica_boolean _valid_connector;
modelica_metatype _vis = NULL;
modelica_metatype _enc2 = NULL;
modelica_metatype _partialPrefix = NULL;
modelica_metatype _encapsulatedPrefix = NULL;
modelica_metatype _inst_dims = NULL;
modelica_metatype _inst_dims_1 = NULL;
modelica_string _cn2 = NULL;
modelica_string _cns = NULL;
modelica_string _scope_str = NULL;
modelica_string _s = NULL;
modelica_string _str = NULL;
modelica_metatype _c = NULL;
modelica_metatype _classDef = NULL;
modelica_metatype _classDefParent = NULL;
modelica_metatype _eq = NULL;
modelica_metatype _dims = NULL;
modelica_metatype _cn = NULL;
modelica_metatype _fq_class = NULL;
modelica_metatype _ad = NULL;
modelica_metatype _mod = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _oDA = NULL;
modelica_metatype _comments = NULL;
modelica_metatype _eqConstraint = NULL;
modelica_metatype _callscope = NULL;
modelica_metatype _graph = NULL;
modelica_metatype _ih = NULL;
modelica_boolean _unrollForLoops;
modelica_boolean _zero_dims;
modelica_metatype _tSpecs = NULL;
modelica_metatype _tys = NULL;
modelica_metatype _DA = NULL;
modelica_metatype _ty = NULL;
modelica_metatype _tSpec = NULL;
modelica_metatype _store = NULL;
modelica_metatype _ed = NULL;
modelica_metatype _elementSource = NULL;
modelica_metatype _smCompCrefs = NULL;
modelica_metatype _smInitialCrefs = NULL;
modelica_integer _smCompToFlatSM;
modelica_metatype _domainFieldsLst = NULL;
modelica_metatype _typeVars = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 21; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_integer tmp12;
modelica_boolean tmp13;
modelica_boolean tmp14;
modelica_boolean tmp15;
modelica_boolean tmp16;
modelica_boolean tmp17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
modelica_metatype tmpMeta29;
modelica_metatype tmpMeta30;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,0,8) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
if (!listEmpty(tmpMeta7)) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
if (!listEmpty(tmpMeta8)) goto tmp3_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 5));
if (!listEmpty(tmpMeta9)) goto tmp3_end;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 6));
if (!listEmpty(tmpMeta10)) goto tmp3_end;
_els = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_ci_state = tmp4_7;
_re = tmp4_9;
_vis = tmp4_10;
_inst_dims = tmp4_13;
_impl = tmp4_14;
_graph = tmp4_16;
tmpMeta11 = omc_Mutable_access(threadData, _stopInst);
tmp12 = mmc_unbox_integer(tmpMeta11);
if (0 != tmp12) goto goto_2;
tmp13 = valueEq(_OMC_LIT410, _re);
if (0 != tmp13) goto goto_2;
tmp14 = valueEq(_OMC_LIT411, _re);
if (0 != tmp14) goto goto_2;
tmp15 = omc_SCodeUtil_isFunctionRestriction(threadData, _re);
if (0 != tmp15) goto goto_2;
tmp16 = valueEq(_OMC_LIT412, _re);
if (0 != tmp16) goto goto_2;
tmp17 = valueEq(_OMC_LIT413, _re);
if (0 != tmp17) goto goto_2;
tmpMeta23 = omc_InstUtil_splitElts(threadData, _els, &tmpMeta18, &tmpMeta19, &tmpMeta22);
_cdefelts = tmpMeta23;
if (listEmpty(tmpMeta19)) goto goto_2;
tmpMeta20 = MMC_CAR(tmpMeta19);
tmpMeta21 = MMC_CDR(tmpMeta19);
if (!listEmpty(tmpMeta22)) goto goto_2;
_extendsclasselts = tmpMeta18;
_extendselts = tmpMeta19;
_extendselts = omc_SCodeInstUtil_addRedeclareAsElementsToExtends(threadData, _extendselts, omc_List_select(threadData, _els, boxvar_SCodeUtil_isRedeclareElement));
_cache = omc_InstUtil_addClassdefsToEnv(threadData, _cache, _env, _ih, _pre, _cdefelts, _impl, mmc_mk_some(_mods), 0 ,&_env1 ,&_ih);
tmpMeta29 = omc_InstExtends_instExtendsAndClassExtendsList(threadData, _cache, _env1, _ih, _mods, _pre, _extendselts, _extendsclasselts, _els, _ci_state, _className, _impl, 0, NULL, NULL, NULL, &tmpMeta24, &tmpMeta25, &tmpMeta26, &tmpMeta27, &tmpMeta28, NULL);
_cache = tmpMeta29;
if (!listEmpty(tmpMeta25)) goto goto_2;
if (!listEmpty(tmpMeta26)) goto goto_2;
if (!listEmpty(tmpMeta27)) goto goto_2;
if (!listEmpty(tmpMeta28)) goto goto_2;
_extcomps = tmpMeta24;
_compelts_2_elem = omc_List_map(threadData, _extcomps, boxvar_Util_tuple21);
omc_InstUtil_splitElts(threadData, _compelts_2_elem, NULL, NULL, &tmpMeta30);
if (!listEmpty(tmpMeta30)) goto goto_2;
tmpMeta[0+0] = omc_Inst_instClassdefBasicType(threadData, _cache, _env, _ih, _store, _mods, _pre, _ci_state, _className, _inClassDef6, _re, _vis, _inst_dims, _impl, _graph, _inSets, _instSingleCref, _info, _stopInst, &tmpMeta[0+1], &tmpMeta[0+2], &tmpMeta[0+3], &tmpMeta[0+4], &tmpMeta[0+5], &tmpMeta[0+6], &tmpMeta[0+7], &tmpMeta[0+8], &tmpMeta[0+9], &tmpMeta[0+10], &tmpMeta[0+11]);
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta31;
modelica_metatype tmpMeta32;
modelica_integer tmp33;
modelica_boolean tmp34;
modelica_metatype tmpMeta35;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,0,8) == 0) goto tmp3_end;
tmpMeta31 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
_els = tmpMeta31;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_ci_state = tmp4_7;
_impl = tmp4_14;
_graph = tmp4_16;
tmpMeta32 = omc_Mutable_access(threadData, _stopInst);
tmp33 = mmc_unbox_integer(tmpMeta32);
if (0 != tmp33) goto goto_2;
tmp34 = omc_SCodeUtil_isExternalObject(threadData, _els);
if (1 != tmp34) goto goto_2;
_cache = omc_InstFunction_instantiateExternalObject(threadData, _cache, _env, _ih, _els, _mods, _impl, _comment, _info ,&_env ,&_ih ,&_dae ,&_ci_state);
tmpMeta35 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _dae;
tmpMeta[0+5] = _inSets;
tmpMeta[0+6] = _ci_state;
tmpMeta[0+7] = tmpMeta35;
tmpMeta[0+8] = mmc_mk_none();
tmpMeta[0+9] = mmc_mk_none();
tmpMeta[0+10] = mmc_mk_none();
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta36;
modelica_metatype tmpMeta37;
modelica_metatype tmpMeta38;
modelica_metatype tmpMeta39;
modelica_metatype tmpMeta40;
modelica_metatype tmpMeta41;
modelica_metatype tmpMeta42;
modelica_metatype tmpMeta43;
modelica_metatype tmpMeta44;
modelica_integer tmp45;
modelica_boolean tmp46;
modelica_metatype tmpMeta47;
modelica_metatype tmpMeta48;
modelica_metatype tmpMeta49;
modelica_metatype tmpMeta50;
modelica_metatype tmpMeta51;
modelica_metatype tmpMeta52;
modelica_metatype tmpMeta53;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,0,8) == 0) goto tmp3_end;
tmpMeta36 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
tmpMeta37 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta38 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
tmpMeta39 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 5));
tmpMeta40 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 6));
tmpMeta41 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 7));
tmpMeta42 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 8));
tmpMeta43 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 9));
_els = tmpMeta36;
_eqs = tmpMeta37;
_initeqs = tmpMeta38;
_alg = tmpMeta39;
_initalg = tmpMeta40;
_constrs = tmpMeta41;
_clsattrs = tmpMeta42;
_ed = tmpMeta43;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_ci_state = tmp4_7;
_re = tmp4_9;
_inst_dims = tmp4_13;
_impl = tmp4_14;
_callscope = tmp4_15;
_graph = tmp4_16;
_csets = tmp4_17;
tmp4 += 17;
tmpMeta44 = omc_Mutable_access(threadData, _stopInst);
tmp45 = mmc_unbox_integer(tmpMeta44);
if (0 != tmp45) goto goto_2;
tmp46 = omc_SCodeUtil_isExternalObject(threadData, _els);
if (0 != tmp46) goto goto_2;
_ci_state1 = omc_ClassInf_trans(threadData, _ci_state, _OMC_LIT397);
tmpMeta47 = MMC_REFSTRUCTLIT(mmc_nil);
_els = omc_InstUtil_extractConstantPlusDeps(threadData, _els, _instSingleCref, tmpMeta47, _className);
_cdefelts = omc_InstUtil_splitElts(threadData, _els ,&_extendsclasselts ,&_extendselts ,&_compelts);
_extendselts = omc_SCodeInstUtil_addRedeclareAsElementsToExtends(threadData, _extendselts, omc_List_select(threadData, _els, boxvar_SCodeUtil_isRedeclareElement));
_cache = omc_InstUtil_addClassdefsToEnv(threadData, _cache, _env, _ih, _pre, _cdefelts, _impl, mmc_mk_some(_mods), omc_FGraph_isEmptyScope(threadData, _env) ,&_env1 ,&_ih);
_cache = omc_InstExtends_instExtendsAndClassExtendsList(threadData, _cache, _env1, _ih, _mods, _pre, _extendselts, _extendsclasselts, _els, _ci_state, _className, _impl, 0 ,&_env2 ,&_ih ,&_emods ,&_extcomps ,&_eqs2 ,&_initeqs2 ,&_alg2 ,&_initalg2 ,&_comments);
_compelts_1 = omc_InstUtil_addNomod(threadData, _compelts);
_cdefelts_1 = omc_InstUtil_addNomod(threadData, _cdefelts);
tmpMeta48 = mmc_mk_cons(_extcomps, mmc_mk_cons(_compelts_1, mmc_mk_cons(_cdefelts_1, MMC_REFSTRUCTLIT(mmc_nil))));
_compelts_1 = omc_List_flatten(threadData, tmpMeta48);
_eqs_1 = omc_Inst_joinExtEquations(threadData, _eqs, _eqs2, _callscope);
_initeqs_1 = omc_Inst_joinExtEquations(threadData, _initeqs, _initeqs2, _callscope);
_alg_1 = omc_Inst_joinExtAlgorithms(threadData, _alg, _alg2, _callscope);
_initalg_1 = omc_Inst_joinExtAlgorithms(threadData, _initalg, _initalg2, _callscope);
tmpMeta49 = MMC_REFSTRUCTLIT(mmc_nil);
_compelts_1 = omc_InstUtil_extractConstantPlusDepsTpl(threadData, _compelts_1, _instSingleCref, tmpMeta49, _className, _eqs_1, _initeqs_1, _alg_1, _initalg_1 ,&_eqs_1 ,&_initeqs_1 ,&_alg_1 ,&_initalg_1);
if((omc_Flags_getConfigEnum(threadData, _OMC_LIT366) == ((modelica_integer) 5)))
{
_compelts_1 = omc_InstUtil_addGhostCells(threadData, _compelts_1, _eqs_1);
}
_checkMods = omc_Mod_merge(threadData, _mods, _emods, _className, 1);
_mods = _checkMods;
_cache = omc_InstUtil_addComponentsToEnv(threadData, _cache, _env2, _ih, _mods, _pre, _ci_state, _compelts_1, _impl ,&_env3 ,&_ih);
_compelts_2_elem = omc_List_map(threadData, _compelts_1, boxvar_Util_tuple21);
omc_InstUtil_matchModificationToComponents(threadData, _compelts_2_elem, _checkMods, omc_FGraph_printGraphPathStr(threadData, _env3));
_comp_cond = omc_List_splitOnTrue(threadData, _compelts_1, boxvar_InstUtil_componentHasCondition ,&_compelts_1);
_compelts_2 = listAppend(_compelts_1, _comp_cond);
_smCompCrefs = omc_InstStateMachineUtil_getSMStatesInContext(threadData, _eqs_1, _pre ,&_smInitialCrefs);
_ih = omc_List_fold(threadData, _smCompCrefs, boxvar_InnerOuter_updateSMHierarchy, _ih);
_cache = omc_Inst_instElementList(threadData, _cache, _env3, _ih, _store, _mods, _pre, _ci_state1, _compelts_2, _inst_dims, _impl, _callscope, _graph, _csets, 1 ,&_env5 ,&_ih ,&_store ,&_dae1 ,&_csets ,&_ci_state2 ,&_vars ,&_graph ,&_domainFieldsLst);
_zero_dims = omc_InstUtil_instDimsHasZeroDims(threadData, _inst_dims);
_elementSource = omc_ElementSource_createElementSource(threadData, _info, omc_FGraph_getScopePath(threadData, _env3), _pre, _OMC_LIT415);
_csets1 = omc_ConnectUtil_addConnectorVariablesFromDAE(threadData, _zero_dims, _ci_state1, _pre, _vars, _info, _elementSource, _csets);
_cache = omc_InstUtil_reorderConnectEquationsExpandable(threadData, _cache, _env5, _eqs_1 ,&_eqs_1);
if((omc_Flags_getConfigEnum(threadData, _OMC_LIT366) == ((modelica_integer) 5)))
{
tmpMeta50 = MMC_REFSTRUCTLIT(mmc_nil);
_eqs_1 = omc_List_fold1(threadData, _eqs_1, boxvar_InstUtil_discretizePDE, _domainFieldsLst, tmpMeta50);
}
_cache = omc_Inst_instList(threadData, _cache, _env5, _ih, _pre, _csets1, _ci_state2, boxvar_InstSection_instEquation, _eqs_1, _impl, 1, _graph ,&_env5 ,&_ih ,&_dae2 ,&_csets2 ,&_ci_state3 ,&_graph);
omc_DAEUtil_verifyEquationsDAE(threadData, _dae2);
if((omc_Flags_getConfigEnum(threadData, _OMC_LIT366) == ((modelica_integer) 5)))
{
tmpMeta51 = MMC_REFSTRUCTLIT(mmc_nil);
_initeqs_1 = omc_List_fold1(threadData, _initeqs_1, boxvar_InstUtil_discretizePDE, _domainFieldsLst, tmpMeta51);
}
_cache = omc_Inst_instList(threadData, _cache, _env5, _ih, _pre, _csets2, _ci_state3, boxvar_InstSection_instInitialEquation, _initeqs_1, _impl, 1, _graph ,&_env5 ,&_ih ,&_dae3 ,&_csets3 ,&_ci_state4 ,&_graph);
_unrollForLoops = (!omc_SCodeUtil_isFunctionRestriction(threadData, _re));
_cache = omc_Inst_instList(threadData, _cache, _env5, _ih, _pre, _csets3, _ci_state4, boxvar_InstSection_instAlgorithm, _alg_1, _impl, _unrollForLoops, _graph ,&_env5 ,&_ih ,&_dae4 ,&_csets4 ,&_ci_state5 ,&_graph);
_cache = omc_Inst_instList(threadData, _cache, _env5, _ih, _pre, _csets4, _ci_state5, boxvar_InstSection_instInitialAlgorithm, _initalg_1, _impl, _unrollForLoops, _graph ,&_env5 ,&_ih ,&_dae5 ,&_csets5 ,&_ci_state6 ,&_graph);
_cache = omc_Inst_instClassAttributes(threadData, _cache, _env5, _pre, _clsattrs, _impl, _info ,&_env5 ,&_dae6);
_cache = omc_Inst_instConstraints(threadData, _cache, _env5, _pre, _ci_state6, _constrs, _impl ,&_env5 ,&_dae7 ,NULL);
tmpMeta52 = mmc_mk_cons(_comment, _comments);
_dae8 = omc_Inst_instFunctionAnnotations(threadData, tmpMeta52, _ci_state6);
_smCompToFlatSM = omc_InstStateMachineUtil_createSMNodeToFlatSMGroupTable(threadData, _dae2);
_dae1 = omc_InstStateMachineUtil_wrapSMCompsInFlatSMs(threadData, _ih, _dae1, _dae2, _smCompToFlatSM, _smInitialCrefs ,&_dae2);
tmpMeta53 = mmc_mk_cons(_dae1, mmc_mk_cons(_dae2, mmc_mk_cons(_dae3, mmc_mk_cons(_dae4, mmc_mk_cons(_dae5, mmc_mk_cons(_dae6, mmc_mk_cons(_dae7, mmc_mk_cons(_dae8, MMC_REFSTRUCTLIT(mmc_nil)))))))));
_dae = omc_DAEUtil_joinDaeLst(threadData, tmpMeta53);
_csets5 = omc_InnerOuter_changeInnerOuterInOuterConnect(threadData, _csets5);
_eqConstraint = omc_InstUtil_equalityConstraint(threadData, _env5, _els, _info);
_ci_state6 = (isSome(_ed)?omc_ClassInf_assertTrans(threadData, _ci_state6, _OMC_LIT416, _info):_ci_state6);
_cache = omc_InstMeta_fixUniontype(threadData, _cache, _env5, _ci_state6, _inClassDef6 ,&_oty);
{
modelica_metatype tmp56_1;
tmp56_1 = _oty;
{
volatile mmc_switch_type tmp56;
int tmp57;
tmp56 = 0;
for (; tmp56 < 2; tmp56++) {
switch (MMC_SWITCH_CAST(tmp56)) {
case 0: {
modelica_metatype tmpMeta58;
modelica_metatype tmpMeta59;
modelica_metatype tmpMeta60;
modelica_metatype tmpMeta61;
modelica_metatype tmpMeta62;
if (optionNone(tmp56_1)) goto tmp55_end;
tmpMeta58 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp56_1), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta58,20,5) == 0) goto tmp55_end;
tmpMeta59 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta58), 3));
if (listEmpty(tmpMeta59)) goto tmp55_end;
tmpMeta60 = MMC_CAR(tmpMeta59);
tmpMeta61 = MMC_CDR(tmpMeta59);
_ty = tmpMeta58;
tmpMeta62 = mmc_mk_cons(omc_Types_unparseType(threadData, _ty), MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT419, tmpMeta62, _info);
goto goto_54;
goto tmp55_done;
}
case 1: {
goto tmp55_done;
}
}
goto tmp55_end;
tmp55_end: ;
}
goto goto_54;
goto_54:;
goto goto_2;
goto tmp55_done;
tmp55_done:;
}
}
;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env5;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _dae;
tmpMeta[0+5] = _csets5;
tmpMeta[0+6] = _ci_state6;
tmpMeta[0+7] = _vars;
tmpMeta[0+8] = _oty;
tmpMeta[0+9] = mmc_mk_none();
tmpMeta[0+10] = _eqConstraint;
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta63;
modelica_metatype tmpMeta64;
modelica_metatype tmpMeta65;
modelica_metatype tmpMeta66;
modelica_metatype tmpMeta67;
modelica_metatype tmpMeta68;
modelica_integer tmp69;
modelica_metatype tmpMeta70;
modelica_metatype tmpMeta71;
modelica_metatype tmpMeta72;
modelica_metatype tmpMeta73;
modelica_metatype tmpMeta74;
modelica_metatype tmpMeta75;
modelica_metatype tmpMeta76;
modelica_metatype tmpMeta77;
modelica_metatype tmpMeta78;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta63 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta63,0,2) == 0) goto tmp3_end;
tmpMeta64 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta63), 2));
tmpMeta65 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta63), 3));
tmpMeta66 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta67 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_cn = tmpMeta64;
_ad = tmpMeta65;
_mod = tmpMeta66;
_DA = tmpMeta67;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_re = tmp4_9;
_vis = tmp4_10;
_inst_dims = tmp4_13;
_impl = tmp4_14;
_callscope = tmp4_15;
_graph = tmp4_16;
tmpMeta68 = omc_Mutable_access(threadData, _stopInst);
tmp69 = mmc_unbox_integer(tmpMeta68);
if (0 != tmp69) goto goto_2;
tmpMeta75 = omc_Lookup_lookupClass(threadData, _cache, _env, _cn, mmc_mk_some(_info), &tmpMeta70, &tmpMeta74);
_cache = tmpMeta75;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta70,2,8) == 0) goto goto_2;
tmpMeta71 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta70), 2));
tmpMeta72 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta70), 4));
tmpMeta73 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta70), 6));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta73,10,0) == 0) goto goto_2;
_c = tmpMeta70;
_cn2 = tmpMeta71;
_enc2 = tmpMeta72;
_r = tmpMeta73;
_cenv = tmpMeta74;
_env3 = omc_FGraph_openScope(threadData, _cenv, _enc2, _cn2, _OMC_LIT421);
_ci_state2 = omc_ClassInf_start(threadData, _r, omc_FGraph_getGraphName(threadData, _env3));
_new_ci_state = omc_ClassInf_start(threadData, _r, omc_FGraph_getGraphName(threadData, _env3));
tmpMeta76 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta77 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClassIn(threadData, _cache, _env3, tmpMeta76, _OMC_LIT6, _OMC_LIT7, _OMC_LIT8, _ci_state2, _c, _OMC_LIT368, tmpMeta77, 0, _callscope, _OMC_LIT10, _OMC_LIT14, mmc_mk_none() ,&_cenv_2 ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL);
tmpMeta78 = mmc_mk_box2(5, &Mod_ModScope_DERIVED__desc, _cn);
_cache = omc_Mod_elabMod(threadData, _cache, _cenv_2, _ih, _pre, _mod, _impl, tmpMeta78, _info ,&_mod_1);
_mods_1 = omc_Mod_merge(threadData, _mods, _mod_1, _className, 1);
_eq = omc_Mod_modEquation(threadData, _mods_1);
_cache = omc_InstUtil_elabArraydimOpt(threadData, _cache, _cenv_2, _OMC_LIT402, _cn, _ad, _eq, _impl, 1, _pre, _info, _inst_dims ,&_dims);
_inst_dims_1 = omc_List_appendLastList(threadData, _inst_dims, _dims);
_cache = omc_Inst_instClassIn(threadData, _cache, _cenv_2, _ih, _store, _mods_1, _pre, _new_ci_state, _c, _vis, _inst_dims_1, _impl, _callscope, _graph, _inSets, _instSingleCref ,&_env_2 ,&_ih ,&_store ,&_dae ,&_csets_1 ,&_ci_state_1 ,&_vars ,&_bc ,&_oDA ,&_eqConstraint ,&_graph);
omc_ClassInf_assertValid(threadData, _ci_state_1, _re, _info);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env_2;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _dae;
tmpMeta[0+5] = _csets_1;
tmpMeta[0+6] = _ci_state_1;
tmpMeta[0+7] = _vars;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = _eqConstraint;
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 4: {
modelica_metatype tmpMeta79;
modelica_metatype tmpMeta80;
modelica_metatype tmpMeta81;
modelica_metatype tmpMeta82;
modelica_metatype tmpMeta83;
modelica_metatype tmpMeta84;
modelica_integer tmp85;
modelica_metatype tmpMeta86;
modelica_metatype tmpMeta87;
modelica_metatype tmpMeta88;
modelica_metatype tmpMeta89;
modelica_metatype tmpMeta90;
modelica_metatype tmpMeta91;
modelica_boolean tmp92;
modelica_boolean tmp93;
modelica_metatype tmpMeta94;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta79 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta79,0,2) == 0) goto tmp3_end;
tmpMeta80 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta79), 2));
tmpMeta81 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta79), 3));
tmpMeta82 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta83 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_cn = tmpMeta80;
_ad = tmpMeta81;
_mod = tmpMeta82;
_DA = tmpMeta83;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_ci_state = tmp4_7;
_re = tmp4_9;
_vis = tmp4_10;
_inst_dims = tmp4_13;
_impl = tmp4_14;
_callscope = tmp4_15;
_graph = tmp4_16;
tmpMeta84 = omc_Mutable_access(threadData, _stopInst);
tmp85 = mmc_unbox_integer(tmpMeta84);
if (0 != tmp85) goto goto_2;
tmpMeta91 = omc_Lookup_lookupClass(threadData, _cache, _env, _cn, mmc_mk_some(_info), &tmpMeta86, &tmpMeta90);
_cache = tmpMeta91;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta86,2,8) == 0) goto goto_2;
tmpMeta87 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta86), 2));
tmpMeta88 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta86), 4));
tmpMeta89 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta86), 6));
_c = tmpMeta86;
_cn2 = tmpMeta87;
_enc2 = tmpMeta88;
_r = tmpMeta89;
_cenv = tmpMeta90;
tmp92 = omc_InstUtil_checkDerivedRestriction(threadData, _re, _r, _cn2);
if (1 != tmp92) goto goto_2;
_valid_connector = omc_ConnectUtil_checkShortConnectorDef(threadData, _ci_state, _DA, _info);
omc_Mutable_update(threadData, _stopInst, mmc_mk_boolean((!_valid_connector)));
tmp93 = _valid_connector;
if (1 != tmp93) goto goto_2;
_cenv_2 = omc_FGraph_openScope(threadData, _cenv, _enc2, _cn2, omc_FGraph_classInfToScopeType(threadData, _ci_state));
_new_ci_state = omc_ClassInf_start(threadData, _r, omc_FGraph_getGraphName(threadData, _cenv_2));
_mod = omc_InstUtil_chainRedeclares(threadData, _mods, _mod);
_parentEnv = omc_FGraph_stripLastScopeRef(threadData, _env, NULL);
tmpMeta94 = mmc_mk_box2(5, &Mod_ModScope_DERIVED__desc, _cn);
_cache = omc_Mod_elabMod(threadData, _cache, _parentEnv, _ih, _pre, _mod, _impl, tmpMeta94, _info ,&_mod_1);
_mods_1 = omc_Mod_merge(threadData, _mods, _mod_1, _className, 1);
_eq = omc_Mod_modEquation(threadData, _mods_1);
_cache = omc_InstUtil_elabArraydimOpt(threadData, _cache, _parentEnv, _OMC_LIT402, _cn, _ad, _eq, _impl, 1, _pre, _info, _inst_dims ,&_dims);
_inst_dims_1 = omc_List_appendLastList(threadData, _inst_dims, _dims);
omc_AbsynUtil_getArrayDimOptAsList(threadData, _ad);
_cache = omc_Inst_instClassIn(threadData, _cache, _cenv_2, _ih, _store, _mods_1, _pre, _new_ci_state, _c, _vis, _inst_dims_1, _impl, _callscope, _graph, _inSets, _instSingleCref ,&_env_2 ,&_ih ,&_store ,&_dae ,&_csets_1 ,&_ci_state_1 ,&_vars ,&_bc ,&_oDA ,&_eqConstraint ,&_graph);
omc_ClassInf_assertValid(threadData, _ci_state_1, _re, _info);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env_2;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _dae;
tmpMeta[0+5] = _csets_1;
tmpMeta[0+6] = _ci_state_1;
tmpMeta[0+7] = _vars;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = _eqConstraint;
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 5: {
modelica_metatype tmpMeta95;
modelica_metatype tmpMeta96;
modelica_metatype tmpMeta97;
modelica_metatype tmpMeta98;
modelica_metatype tmpMeta99;
modelica_metatype tmpMeta100;
modelica_integer tmp101;
modelica_boolean tmp102;
modelica_boolean tmp103;
modelica_boolean tmp104;
modelica_boolean tmp105;
modelica_boolean tmp106;
modelica_metatype tmpMeta107;
modelica_metatype tmpMeta108;
modelica_metatype tmpMeta109;
modelica_metatype tmpMeta110;
modelica_metatype tmpMeta111;
modelica_metatype tmpMeta112;
modelica_boolean tmp113;
modelica_boolean tmp114 = 0;
modelica_metatype tmpMeta119;
modelica_metatype tmpMeta120;
modelica_metatype tmpMeta121;
modelica_metatype tmpMeta122;
modelica_metatype tmpMeta123;
modelica_metatype tmpMeta124;
modelica_metatype tmpMeta125;
modelica_metatype tmpMeta126;
modelica_metatype tmpMeta127;
modelica_metatype tmpMeta128;
modelica_metatype tmpMeta129;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta95 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta95,0,2) == 0) goto tmp3_end;
tmpMeta96 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta95), 2));
tmpMeta97 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta95), 3));
tmpMeta98 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta99 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_cn = tmpMeta96;
_ad = tmpMeta97;
_mod = tmpMeta98;
_DA = tmpMeta99;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_ci_state = tmp4_7;
_re = tmp4_9;
_vis = tmp4_10;
_partialPrefix = tmp4_11;
_encapsulatedPrefix = tmp4_12;
_inst_dims = tmp4_13;
_impl = tmp4_14;
_callscope = tmp4_15;
_graph = tmp4_16;
tmpMeta100 = omc_Mutable_access(threadData, _stopInst);
tmp101 = mmc_unbox_integer(tmpMeta100);
if (0 != tmp101) goto goto_2;
tmp102 = valueEq(_re, _OMC_LIT376);
if (0 != tmp102) goto goto_2;
tmp103 = valueEq(_re, _OMC_LIT422);
if (0 != tmp103) goto goto_2;
tmp104 = valueEq(_re, _OMC_LIT423);
if (0 != tmp104) goto goto_2;
tmp105 = omc_SCodeUtil_isConnector(threadData, _re);
if (0 != tmp105) goto goto_2;
tmp106 = (valueEq(_ad, mmc_mk_none()) || valueEq(_ad, _OMC_LIT398));
if (1 != tmp106) goto goto_2;
tmpMeta112 = omc_Lookup_lookupClass(threadData, _cache, _env, _cn, mmc_mk_some(_info), &tmpMeta107, &tmpMeta111);
_cache = tmpMeta112;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta107,2,8) == 0) goto goto_2;
tmpMeta108 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta107), 2));
tmpMeta109 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta107), 6));
tmpMeta110 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta107), 7));
_cn2 = tmpMeta108;
_r = tmpMeta109;
_classDefParent = tmpMeta110;
_parentClassEnv = tmpMeta111;
tmp113 = omc_InstUtil_checkDerivedRestriction(threadData, _re, _r, _cn2);
if (0 != tmp113) goto goto_2;
{
modelica_metatype tmp117_1;
tmp117_1 = _r;
{
volatile mmc_switch_type tmp117;
int tmp118;
tmp117 = 0;
for (; tmp117 < 2; tmp117++) {
switch (MMC_SWITCH_CAST(tmp117)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp117_1,8,0) == 0) goto tmp116_end;
tmp114 = 0;
goto tmp116_done;
}
case 1: {
tmp114 = (omc_SCodeUtil_restrictionEqual(threadData, _r, _re)?(omc_Mod_isInvariantMod(threadData, _mod) && omc_Mod_isInvariantDAEMod(threadData, _mods)):0);
goto tmp116_done;
}
}
goto tmp116_end;
tmp116_end: ;
}
goto goto_115;
goto_115:;
goto goto_2;
goto tmp116_done;
tmp116_done:;
}
}
if(tmp114)
{
_mod = omc_InstUtil_chainRedeclares(threadData, _mods, _mod);
_parentEnv = omc_FGraph_stripLastScopeRef(threadData, _env, NULL);
tmpMeta119 = mmc_mk_box2(5, &Mod_ModScope_DERIVED__desc, _cn);
_cache = omc_Mod_elabMod(threadData, _cache, _parentEnv, _ih, _pre, _mod, 0, tmpMeta119, _info ,&_mod_1);
_mods_1 = omc_Mod_merge(threadData, _mods, _mod_1, _className, 1);
_cache = omc_Inst_instClassdef2(threadData, _cache, _parentClassEnv, _ih, _store, _mods_1, _pre, _ci_state, _className, _classDefParent, _re, _vis, _partialPrefix, _encapsulatedPrefix, _inst_dims, _impl, _callscope, _graph, _inSets, _instSingleCref, _comment, _info, _stopInst ,&_env ,&_ih ,&_store ,&_dae ,&_csets ,&_ci_state ,&_vars ,&_bc ,&_oDA ,&_eqConstraint ,&_graph);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
}
else
{
_mod = omc_InstUtil_chainRedeclares(threadData, _mods, _mod);
_parentEnv = omc_FGraph_stripLastScopeRef(threadData, _env, NULL);
tmpMeta120 = mmc_mk_box2(5, &Mod_ModScope_DERIVED__desc, _cn);
_cache = omc_Mod_elabMod(threadData, _cache, _parentEnv, _ih, _pre, _mod, 0, tmpMeta120, _info ,&_mod_1);
_mods_1 = omc_Mod_merge(threadData, _mods, _mod_1, _className, 1);
tmpMeta122 = mmc_mk_box6(4, &SCode_Element_EXTENDS__desc, _cn, _vis, _OMC_LIT16, mmc_mk_none(), _info);
tmpMeta121 = mmc_mk_cons(tmpMeta122, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta123 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta124 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta125 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta126 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta127 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta128 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta129 = mmc_mk_box9(3, &SCode_ClassDef_PARTS__desc, tmpMeta121, tmpMeta123, tmpMeta124, tmpMeta125, tmpMeta126, tmpMeta127, tmpMeta128, mmc_mk_none());
_cache = omc_Inst_instClassdef2(threadData, _cache, _env, _ih, _store, _mods_1, _pre, _ci_state, _className, tmpMeta129, _re, _vis, _partialPrefix, _encapsulatedPrefix, _inst_dims, _impl, _callscope, _graph, _inSets, _instSingleCref, _comment, _info, _stopInst ,&_env ,&_ih ,&_store ,&_dae ,&_csets ,&_ci_state ,&_vars ,&_bc ,&_oDA ,&_eqConstraint ,&_graph);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
}
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _dae;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _ci_state;
tmpMeta[0+7] = _vars;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = _eqConstraint;
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 6: {
modelica_metatype tmpMeta130;
modelica_metatype tmpMeta131;
modelica_metatype tmpMeta132;
modelica_metatype tmpMeta133;
modelica_metatype tmpMeta134;
modelica_metatype tmpMeta135;
modelica_integer tmp136;
modelica_metatype tmpMeta137;
modelica_metatype tmpMeta138;
modelica_metatype tmpMeta139;
modelica_metatype tmpMeta140;
modelica_metatype tmpMeta141;
modelica_metatype tmpMeta142;
modelica_boolean tmp143;
modelica_metatype tmpMeta144;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta130 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta130,0,2) == 0) goto tmp3_end;
tmpMeta131 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta130), 2));
tmpMeta132 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta130), 3));
tmpMeta133 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta134 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_cn = tmpMeta131;
_ad = tmpMeta132;
_mod = tmpMeta133;
_DA = tmpMeta134;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_ci_state = tmp4_7;
_re = tmp4_9;
_vis = tmp4_10;
_inst_dims = tmp4_13;
_impl = tmp4_14;
_callscope = tmp4_15;
_graph = tmp4_16;
tmp4 += 11;
tmpMeta135 = omc_Mutable_access(threadData, _stopInst);
tmp136 = mmc_unbox_integer(tmpMeta135);
if (0 != tmp136) goto goto_2;
tmpMeta142 = omc_Lookup_lookupClass(threadData, _cache, _env, _cn, mmc_mk_some(_info), &tmpMeta137, &tmpMeta141);
_cache = tmpMeta142;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta137,2,8) == 0) goto goto_2;
tmpMeta138 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta137), 2));
tmpMeta139 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta137), 4));
tmpMeta140 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta137), 6));
_c = tmpMeta137;
_cn2 = tmpMeta138;
_enc2 = tmpMeta139;
_r = tmpMeta140;
_cenv = tmpMeta141;
tmp143 = omc_InstUtil_checkDerivedRestriction(threadData, _re, _r, _cn2);
if (0 != tmp143) goto goto_2;
_cenv_2 = omc_FGraph_openScope(threadData, _cenv, _enc2, _className, omc_FGraph_classInfToScopeType(threadData, _ci_state));
_new_ci_state = omc_ClassInf_start(threadData, _r, omc_FGraph_getGraphName(threadData, _cenv_2));
_c = omc_SCodeUtil_setClassName(threadData, _className, _c);
_mod = omc_InstUtil_chainRedeclares(threadData, _mods, _mod);
_parentEnv = omc_FGraph_stripLastScopeRef(threadData, _env, NULL);
tmpMeta144 = mmc_mk_box2(5, &Mod_ModScope_DERIVED__desc, _cn);
_cache = omc_Mod_elabMod(threadData, _cache, _parentEnv, _ih, _pre, _mod, _impl, tmpMeta144, _info ,&_mod_1);
_mods_1 = omc_Mod_merge(threadData, _mods, _mod_1, _className, 1);
_eq = omc_Mod_modEquation(threadData, _mods_1);
_cache = omc_InstUtil_elabArraydimOpt(threadData, _cache, _parentEnv, _OMC_LIT402, _cn, _ad, _eq, _impl, 1, _pre, _info, _inst_dims ,&_dims);
_inst_dims_1 = omc_List_appendLastList(threadData, _inst_dims, _dims);
_cache = omc_Inst_instClassIn(threadData, _cache, _cenv_2, _ih, _store, _mods_1, _pre, _new_ci_state, _c, _vis, _inst_dims_1, _impl, _callscope, _graph, _inSets, _instSingleCref ,&_env_2 ,&_ih ,&_store ,&_dae ,&_csets_1 ,&_ci_state_1 ,&_vars ,&_bc ,&_oDA ,&_eqConstraint ,&_graph);
omc_ClassInf_assertValid(threadData, _ci_state_1, _re, _info);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env_2;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _dae;
tmpMeta[0+5] = _csets_1;
tmpMeta[0+6] = _ci_state_1;
tmpMeta[0+7] = _vars;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = _eqConstraint;
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 7: {
modelica_metatype tmpMeta145;
modelica_metatype tmpMeta146;
modelica_boolean tmp147;
modelica_boolean tmp148;
modelica_metatype tmpMeta149;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta145 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta145,1,3) == 0) goto tmp3_end;
tmpMeta146 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
_mod = tmpMeta146;
_mods = tmp4_5;
tmp147 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp147) goto goto_2;
tmp148 = (omc_Mod_emptyModOrEquality(threadData, _mods) && omc_SCodeUtil_emptyModOrEquality(threadData, _mod));
if (0 != tmp148) goto goto_2;
tmpMeta149 = MMC_REFSTRUCTLIT(mmc_nil);
omc_Error_addSourceMessage(threadData, _OMC_LIT426, tmpMeta149, _info);
goto goto_2;
goto tmp3_done;
}
case 8: {
modelica_metatype tmpMeta150;
modelica_metatype tmpMeta151;
modelica_metatype tmpMeta152;
modelica_metatype tmpMeta153;
modelica_metatype tmpMeta154;
modelica_metatype tmpMeta155;
modelica_metatype tmpMeta156;
modelica_metatype tmpMeta157;
modelica_metatype tmpMeta158;
modelica_boolean tmp159;
modelica_metatype tmpMeta160;
modelica_integer tmp161;
modelica_boolean tmp162;
modelica_metatype tmpMeta163;
modelica_metatype tmpMeta164;
modelica_metatype tmpMeta165;
modelica_metatype tmpMeta166;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta150 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta150,1,3) == 0) goto tmp3_end;
tmpMeta151 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta150), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta151,1,1) == 0) goto tmp3_end;
tmpMeta152 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta151), 2));
if (4 != MMC_STRLEN(tmpMeta152) || strcmp(MMC_STRINGDATA(_OMC_LIT313), MMC_STRINGDATA(tmpMeta152)) != 0) goto tmp3_end;
tmpMeta153 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta150), 3));
if (listEmpty(tmpMeta153)) goto tmp3_end;
tmpMeta154 = MMC_CAR(tmpMeta153);
tmpMeta155 = MMC_CDR(tmpMeta153);
if (!listEmpty(tmpMeta155)) goto tmp3_end;
tmpMeta156 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta150), 4));
if (!optionNone(tmpMeta156)) goto tmp3_end;
tmpMeta157 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta158 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_tSpec = tmpMeta154;
_mod = tmpMeta157;
_DA = tmpMeta158;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_inst_dims = tmp4_13;
_impl = tmp4_14;
_graph = tmp4_16;
tmp4 += 5;
tmp159 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp159) goto goto_2;
tmpMeta160 = omc_Mutable_access(threadData, _stopInst);
tmp161 = mmc_unbox_integer(tmpMeta160);
if (0 != tmp161) goto goto_2;
tmp162 = (omc_Mod_emptyModOrEquality(threadData, _mods) && omc_SCodeUtil_emptyModOrEquality(threadData, _mod));
if (1 != tmp162) goto goto_2;
tmpMeta163 = mmc_mk_cons(_tSpec, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta164 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClassDefHelper(threadData, _cache, _env, _ih, tmpMeta163, _pre, _inst_dims, _impl, tmpMeta164, _inSets, _info ,NULL ,&_ih ,&_tys ,&_csets ,&_oDA);
_ty = listHead(_tys);
_ty = omc_Types_boxIfUnboxedType(threadData, _ty);
tmpMeta165 = mmc_mk_box2(20, &DAE_Type_T__METALIST__desc, _ty);
_bc = mmc_mk_some(tmpMeta165);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
tmpMeta166 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _OMC_LIT15;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _OMC_LIT427;
tmpMeta[0+7] = tmpMeta166;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = mmc_mk_none();
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 9: {
modelica_metatype tmpMeta167;
modelica_metatype tmpMeta168;
modelica_metatype tmpMeta169;
modelica_metatype tmpMeta170;
modelica_metatype tmpMeta171;
modelica_metatype tmpMeta172;
modelica_metatype tmpMeta173;
modelica_metatype tmpMeta174;
modelica_metatype tmpMeta175;
modelica_boolean tmp176;
modelica_metatype tmpMeta177;
modelica_integer tmp178;
modelica_boolean tmp179;
modelica_metatype tmpMeta180;
modelica_metatype tmpMeta181;
modelica_metatype tmpMeta182;
modelica_metatype tmpMeta183;
modelica_metatype tmpMeta184;
modelica_metatype tmpMeta185;
modelica_metatype tmpMeta186;
modelica_metatype tmpMeta187;
modelica_metatype tmpMeta188;
modelica_metatype tmpMeta189;
modelica_metatype tmpMeta190;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta167 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta167,1,3) == 0) goto tmp3_end;
tmpMeta168 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta167), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta168,1,1) == 0) goto tmp3_end;
tmpMeta169 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta168), 2));
if (6 != MMC_STRLEN(tmpMeta169) || strcmp(MMC_STRINGDATA(_OMC_LIT315), MMC_STRINGDATA(tmpMeta169)) != 0) goto tmp3_end;
tmpMeta170 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta167), 3));
if (listEmpty(tmpMeta170)) goto tmp3_end;
tmpMeta171 = MMC_CAR(tmpMeta170);
tmpMeta172 = MMC_CDR(tmpMeta170);
if (!listEmpty(tmpMeta172)) goto tmp3_end;
tmpMeta173 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta167), 4));
if (!optionNone(tmpMeta173)) goto tmp3_end;
tmpMeta174 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta175 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_tSpec = tmpMeta171;
_mod = tmpMeta174;
_DA = tmpMeta175;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_inst_dims = tmp4_13;
_impl = tmp4_14;
_graph = tmp4_16;
tmp4 += 4;
tmp176 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp176) goto goto_2;
tmpMeta177 = omc_Mutable_access(threadData, _stopInst);
tmp178 = mmc_unbox_integer(tmpMeta177);
if (0 != tmp178) goto goto_2;
tmp179 = (omc_Mod_emptyModOrEquality(threadData, _mods) && omc_SCodeUtil_emptyModOrEquality(threadData, _mod));
if (1 != tmp179) goto goto_2;
tmpMeta186 = mmc_mk_cons(_tSpec, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta187 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta188 = omc_Inst_instClassDefHelper(threadData, _cache, _env, _ih, tmpMeta186, _pre, _inst_dims, _impl, tmpMeta187, _inSets, _info, NULL, &tmpMeta180, &tmpMeta181, &tmpMeta184, &tmpMeta185);
_cache = tmpMeta188;
if (listEmpty(tmpMeta181)) goto goto_2;
tmpMeta182 = MMC_CAR(tmpMeta181);
tmpMeta183 = MMC_CDR(tmpMeta181);
if (!listEmpty(tmpMeta183)) goto goto_2;
_ih = tmpMeta180;
_ty = tmpMeta182;
_csets = tmpMeta184;
_oDA = tmpMeta185;
_ty = omc_Types_boxIfUnboxedType(threadData, _ty);
tmpMeta189 = mmc_mk_box2(22, &DAE_Type_T__METAOPTION__desc, _ty);
_bc = mmc_mk_some(tmpMeta189);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
tmpMeta190 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _OMC_LIT15;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _OMC_LIT428;
tmpMeta[0+7] = tmpMeta190;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = mmc_mk_none();
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 10: {
modelica_metatype tmpMeta191;
modelica_metatype tmpMeta192;
modelica_metatype tmpMeta193;
modelica_metatype tmpMeta194;
modelica_metatype tmpMeta195;
modelica_metatype tmpMeta196;
modelica_metatype tmpMeta197;
modelica_boolean tmp198;
modelica_metatype tmpMeta199;
modelica_integer tmp200;
modelica_boolean tmp201;
modelica_metatype tmpMeta202;
modelica_metatype tmpMeta203;
modelica_metatype tmpMeta204;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta191 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta191,1,3) == 0) goto tmp3_end;
tmpMeta192 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta191), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta192,1,1) == 0) goto tmp3_end;
tmpMeta193 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta192), 2));
if (5 != MMC_STRLEN(tmpMeta193) || strcmp(MMC_STRINGDATA(_OMC_LIT317), MMC_STRINGDATA(tmpMeta193)) != 0) goto tmp3_end;
tmpMeta194 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta191), 3));
tmpMeta195 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta191), 4));
if (!optionNone(tmpMeta195)) goto tmp3_end;
tmpMeta196 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta197 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_tSpecs = tmpMeta194;
_mod = tmpMeta196;
_DA = tmpMeta197;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_inst_dims = tmp4_13;
_impl = tmp4_14;
_graph = tmp4_16;
tmp4 += 3;
tmp198 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp198) goto goto_2;
tmpMeta199 = omc_Mutable_access(threadData, _stopInst);
tmp200 = mmc_unbox_integer(tmpMeta199);
if (0 != tmp200) goto goto_2;
tmp201 = (omc_Mod_emptyModOrEquality(threadData, _mods) && omc_SCodeUtil_emptyModOrEquality(threadData, _mod));
if (1 != tmp201) goto goto_2;
tmpMeta202 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClassDefHelper(threadData, _cache, _env, _ih, _tSpecs, _pre, _inst_dims, _impl, tmpMeta202, _inSets, _info ,NULL ,&_ih ,&_tys ,&_csets ,&_oDA);
_tys = omc_List_map(threadData, _tys, boxvar_Types_boxIfUnboxedType);
tmpMeta203 = mmc_mk_box2(21, &DAE_Type_T__METATUPLE__desc, _tys);
_bc = mmc_mk_some(tmpMeta203);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
tmpMeta204 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _OMC_LIT15;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _OMC_LIT429;
tmpMeta[0+7] = tmpMeta204;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = mmc_mk_none();
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 11: {
modelica_metatype tmpMeta205;
modelica_metatype tmpMeta206;
modelica_metatype tmpMeta207;
modelica_metatype tmpMeta208;
modelica_metatype tmpMeta209;
modelica_metatype tmpMeta210;
modelica_metatype tmpMeta211;
modelica_metatype tmpMeta212;
modelica_metatype tmpMeta213;
modelica_boolean tmp214;
modelica_metatype tmpMeta215;
modelica_integer tmp216;
modelica_boolean tmp217;
modelica_metatype tmpMeta218;
modelica_metatype tmpMeta219;
modelica_metatype tmpMeta220;
modelica_metatype tmpMeta221;
modelica_metatype tmpMeta222;
modelica_metatype tmpMeta223;
modelica_metatype tmpMeta224;
modelica_metatype tmpMeta225;
modelica_metatype tmpMeta226;
modelica_metatype tmpMeta227;
modelica_metatype tmpMeta228;
modelica_metatype tmpMeta229;
modelica_metatype tmpMeta230;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta205 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta205,1,3) == 0) goto tmp3_end;
tmpMeta206 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta205), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta206,1,1) == 0) goto tmp3_end;
tmpMeta207 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta206), 2));
if (5 != MMC_STRLEN(tmpMeta207) || strcmp(MMC_STRINGDATA(_OMC_LIT321), MMC_STRINGDATA(tmpMeta207)) != 0) goto tmp3_end;
tmpMeta208 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta205), 3));
if (listEmpty(tmpMeta208)) goto tmp3_end;
tmpMeta209 = MMC_CAR(tmpMeta208);
tmpMeta210 = MMC_CDR(tmpMeta208);
if (!listEmpty(tmpMeta210)) goto tmp3_end;
tmpMeta211 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta205), 4));
if (!optionNone(tmpMeta211)) goto tmp3_end;
tmpMeta212 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta213 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_tSpec = tmpMeta209;
_mod = tmpMeta212;
_DA = tmpMeta213;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_inst_dims = tmp4_13;
_impl = tmp4_14;
_graph = tmp4_16;
tmp4 += 2;
tmp214 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp214) goto goto_2;
tmpMeta215 = omc_Mutable_access(threadData, _stopInst);
tmp216 = mmc_unbox_integer(tmpMeta215);
if (0 != tmp216) goto goto_2;
tmp217 = (omc_Mod_emptyModOrEquality(threadData, _mods) && omc_SCodeUtil_emptyModOrEquality(threadData, _mod));
if (1 != tmp217) goto goto_2;
tmpMeta224 = mmc_mk_cons(_tSpec, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta225 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta226 = omc_Inst_instClassDefHelper(threadData, _cache, _env, _ih, tmpMeta224, _pre, _inst_dims, _impl, tmpMeta225, _inSets, _info, NULL, &tmpMeta218, &tmpMeta219, &tmpMeta222, &tmpMeta223);
_cache = tmpMeta226;
if (listEmpty(tmpMeta219)) goto goto_2;
tmpMeta220 = MMC_CAR(tmpMeta219);
tmpMeta221 = MMC_CDR(tmpMeta219);
if (!listEmpty(tmpMeta221)) goto goto_2;
_ih = tmpMeta218;
_ty = tmpMeta220;
_csets = tmpMeta222;
_oDA = tmpMeta223;
_ty = omc_Types_boxIfUnboxedType(threadData, _ty);
tmpMeta227 = mmc_mk_box2(25, &DAE_Type_T__METAARRAY__desc, _ty);
_bc = mmc_mk_some(tmpMeta227);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
tmpMeta228 = mmc_mk_box2(4, &Absyn_Path_IDENT__desc, _className);
tmpMeta229 = mmc_mk_box2(26, &ClassInf_State_META__ARRAY__desc, tmpMeta228);
tmpMeta230 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _OMC_LIT15;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = tmpMeta229;
tmpMeta[0+7] = tmpMeta230;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = mmc_mk_none();
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 12: {
modelica_metatype tmpMeta231;
modelica_metatype tmpMeta232;
modelica_metatype tmpMeta233;
modelica_metatype tmpMeta234;
modelica_metatype tmpMeta235;
modelica_metatype tmpMeta236;
modelica_metatype tmpMeta237;
modelica_metatype tmpMeta238;
modelica_metatype tmpMeta239;
modelica_metatype tmpMeta240;
modelica_metatype tmpMeta241;
modelica_metatype tmpMeta242;
modelica_metatype tmpMeta243;
modelica_integer tmp244;
modelica_boolean tmp245;
modelica_metatype tmpMeta246;
modelica_metatype tmpMeta247;
modelica_metatype tmpMeta248;
modelica_metatype tmpMeta249;
modelica_metatype tmpMeta250;
modelica_metatype tmpMeta251;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta231 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta231,1,3) == 0) goto tmp3_end;
tmpMeta232 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta231), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta232,1,1) == 0) goto tmp3_end;
tmpMeta233 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta232), 2));
if (11 != MMC_STRLEN(tmpMeta233) || strcmp(MMC_STRINGDATA(_OMC_LIT319), MMC_STRINGDATA(tmpMeta233)) != 0) goto tmp3_end;
tmpMeta234 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta231), 3));
if (listEmpty(tmpMeta234)) goto tmp3_end;
tmpMeta235 = MMC_CAR(tmpMeta234);
tmpMeta236 = MMC_CDR(tmpMeta234);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta235,0,2) == 0) goto tmp3_end;
tmpMeta237 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta235), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta237,1,1) == 0) goto tmp3_end;
tmpMeta238 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta237), 2));
if (3 != MMC_STRLEN(tmpMeta238) || strcmp(MMC_STRINGDATA(_OMC_LIT467), MMC_STRINGDATA(tmpMeta238)) != 0) goto tmp3_end;
tmpMeta239 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta235), 3));
if (!optionNone(tmpMeta239)) goto tmp3_end;
if (!listEmpty(tmpMeta236)) goto tmp3_end;
tmpMeta240 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta231), 4));
if (!optionNone(tmpMeta240)) goto tmp3_end;
tmpMeta241 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta242 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_mod = tmpMeta241;
_DA = tmpMeta242;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_inst_dims = tmp4_13;
_impl = tmp4_14;
_graph = tmp4_16;
tmpMeta243 = omc_Mutable_access(threadData, _stopInst);
tmp244 = mmc_unbox_integer(tmpMeta243);
if (0 != tmp244) goto goto_2;
tmp245 = (omc_Mod_emptyModOrEquality(threadData, _mods) && omc_SCodeUtil_emptyModOrEquality(threadData, _mod));
if (1 != tmp245) goto goto_2;
tmpMeta246 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta247 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClassDefHelper(threadData, _cache, _env, _ih, tmpMeta246, _pre, _inst_dims, _impl, tmpMeta247, _inSets, _info ,NULL ,&_ih ,NULL ,&_csets ,&_oDA);
tmpMeta248 = mmc_mk_box2(27, &DAE_Type_T__METAPOLYMORPHIC__desc, _className);
_bc = mmc_mk_some(tmpMeta248);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
tmpMeta249 = mmc_mk_box2(4, &Absyn_Path_IDENT__desc, _className);
tmpMeta250 = mmc_mk_box2(27, &ClassInf_State_META__POLYMORPHIC__desc, tmpMeta249);
tmpMeta251 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _OMC_LIT15;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = tmpMeta250;
tmpMeta[0+7] = tmpMeta251;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = mmc_mk_none();
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 13: {
modelica_metatype tmpMeta252;
modelica_metatype tmpMeta253;
modelica_metatype tmpMeta254;
modelica_metatype tmpMeta255;
modelica_boolean tmp256;
modelica_metatype tmpMeta257;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta252 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta252,1,3) == 0) goto tmp3_end;
tmpMeta253 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta252), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta253,1,1) == 0) goto tmp3_end;
tmpMeta254 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta253), 2));
if (11 != MMC_STRLEN(tmpMeta254) || strcmp(MMC_STRINGDATA(_OMC_LIT319), MMC_STRINGDATA(tmpMeta254)) != 0) goto tmp3_end;
tmpMeta255 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
_mod = tmpMeta255;
_mods = tmp4_5;
tmp256 = (omc_Mod_emptyModOrEquality(threadData, _mods) && omc_SCodeUtil_emptyModOrEquality(threadData, _mod));
if (1 != tmp256) goto goto_2;
tmpMeta257 = mmc_mk_cons(_className, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT432, tmpMeta257, _info);
goto goto_2;
goto tmp3_done;
}
case 14: {
modelica_metatype tmpMeta258;
modelica_metatype tmpMeta259;
modelica_metatype tmpMeta260;
modelica_metatype tmpMeta261;
modelica_metatype tmpMeta262;
modelica_metatype tmpMeta263;
modelica_metatype tmpMeta264;
modelica_metatype tmpMeta265;
modelica_metatype tmpMeta266;
modelica_metatype tmpMeta267;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta258 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta258,1,3) == 0) goto tmp3_end;
tmpMeta259 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta258), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta259,1,1) == 0) goto tmp3_end;
tmpMeta260 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta259), 2));
tmpMeta261 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta258), 3));
tmpMeta262 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta258), 4));
if (!optionNone(tmpMeta262)) goto tmp3_end;
tmpMeta263 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta264 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_str = tmpMeta260;
_tSpecs = tmpMeta261;
_mod = tmpMeta263;
_DA = tmpMeta264;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_ci_state = tmp4_7;
_re = tmp4_9;
_vis = tmp4_10;
_partialPrefix = tmp4_11;
_encapsulatedPrefix = tmp4_12;
_inst_dims = tmp4_13;
_impl = tmp4_14;
_graph = tmp4_16;
_str = omc_Util_assoc(threadData, _str, _OMC_LIT441);
tmpMeta265 = mmc_mk_box2(4, &Absyn_Path_IDENT__desc, _str);
tmpMeta266 = mmc_mk_box4(4, &Absyn_TypeSpec_TCOMPLEX__desc, tmpMeta265, _tSpecs, mmc_mk_none());
tmpMeta267 = mmc_mk_box4(5, &SCode_ClassDef_DERIVED__desc, tmpMeta266, _mod, _DA);
tmpMeta[0+0] = omc_Inst_instClassdef2(threadData, _cache, _env, _ih, _store, _mods, _pre, _ci_state, _className, tmpMeta267, _re, _vis, _partialPrefix, _encapsulatedPrefix, _inst_dims, _impl, _inCallingScope, _graph, _inSets, _instSingleCref, _comment, _info, _stopInst, &tmpMeta[0+1], &tmpMeta[0+2], &tmpMeta[0+3], &tmpMeta[0+4], &tmpMeta[0+5], &tmpMeta[0+6], &tmpMeta[0+7], &tmpMeta[0+8], &tmpMeta[0+9], &tmpMeta[0+10], &tmpMeta[0+11]);
goto tmp3_done;
}
case 15: {
modelica_metatype tmpMeta268;
modelica_metatype tmpMeta269;
modelica_metatype tmpMeta270;
modelica_metatype tmpMeta271;
modelica_metatype tmpMeta272;
modelica_metatype tmpMeta273;
modelica_boolean tmp274;
modelica_metatype tmpMeta275;
modelica_integer tmp276;
modelica_boolean tmp277;
modelica_boolean tmp278;
modelica_metatype tmpMeta279;
modelica_metatype tmpMeta280;
modelica_metatype tmpMeta281;
modelica_metatype tmpMeta282;
modelica_metatype tmpMeta283;
modelica_metatype tmpMeta284;
modelica_metatype tmpMeta285;
modelica_metatype tmpMeta286;
modelica_metatype tmpMeta287;
modelica_metatype tmpMeta288;
modelica_metatype tmpMeta289;
modelica_metatype tmpMeta290;
modelica_metatype tmpMeta291;
modelica_metatype tmpMeta295;
modelica_string tmp296;
modelica_string tmp297;
modelica_metatype tmpMeta298;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta268 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta268,1,3) == 0) goto tmp3_end;
tmpMeta269 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta268), 2));
tmpMeta270 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta268), 3));
tmpMeta271 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta268), 4));
if (!optionNone(tmpMeta271)) goto tmp3_end;
tmpMeta272 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta273 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_cn = tmpMeta269;
_tSpecs = tmpMeta270;
_mod = tmpMeta272;
_DA = tmpMeta273;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_inst_dims = tmp4_13;
_impl = tmp4_14;
_graph = tmp4_16;
tmp4 += 1;
tmp274 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp274) goto goto_2;
tmpMeta275 = omc_Mutable_access(threadData, _stopInst);
tmp276 = mmc_unbox_integer(tmpMeta275);
if (0 != tmp276) goto goto_2;
tmp277 = (omc_Mod_emptyModOrEquality(threadData, _mods) && omc_SCodeUtil_emptyModOrEquality(threadData, _mod));
if (1 != tmp277) goto goto_2;
tmp278 = listMember(omc_AbsynUtil_pathString(threadData, _cn, _OMC_LIT5, 1, 0), _OMC_LIT448);
if (0 != tmp278) goto goto_2;
tmpMeta285 = omc_Lookup_lookupClass(threadData, _cache, _env, _cn, mmc_mk_some(_info), &tmpMeta279, &tmpMeta284);
_cache = tmpMeta285;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta279,2,8) == 0) goto goto_2;
tmpMeta280 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta279), 2));
tmpMeta281 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta279), 6));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta281,18,1) == 0) goto goto_2;
tmpMeta282 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta281), 2));
tmpMeta283 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta279), 7));
_cn2 = tmpMeta280;
_typeVars = tmpMeta282;
_classDef = tmpMeta283;
_cenv = tmpMeta284;
_cache = omc_Inst_makeFullyQualifiedIdent(threadData, _cache, _cenv, _cn2, _OMC_LIT259 ,&_fq_class);
tmpMeta286 = mmc_mk_box3(25, &ClassInf_State_META__UNIONTYPE__desc, _fq_class, _typeVars);
_new_ci_state = tmpMeta286;
tmpMeta289 = omc_InstMeta_fixUniontype(threadData, _cache, _env, _new_ci_state, _classDef, &tmpMeta287);
_cache = tmpMeta289;
if (optionNone(tmpMeta287)) goto goto_2;
tmpMeta288 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta287), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta288,20,5) == 0) goto goto_2;
_ty = tmpMeta288;
tmpMeta290 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClassDefHelper(threadData, _cache, _env, _ih, _tSpecs, _pre, _inst_dims, _impl, tmpMeta290, _inSets, _info ,NULL ,&_ih ,&_tys ,&_csets ,&_oDA);
{
modelica_metatype __omcQ_24tmpVar7;
modelica_metatype* tmp292;
modelica_metatype tmpMeta293;
modelica_metatype __omcQ_24tmpVar6;
modelica_integer tmp294;
modelica_metatype _t_loopVar = 0;
modelica_metatype _t;
_t_loopVar = _tys;
tmpMeta293 = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar7 = tmpMeta293;
tmp292 = &__omcQ_24tmpVar7;
while(1) {
tmp294 = 1;
if (!listEmpty(_t_loopVar)) {
_t = MMC_CAR(_t_loopVar);
_t_loopVar = MMC_CDR(_t_loopVar);
tmp294--;
}
if (tmp294 == 0) {
__omcQ_24tmpVar6 = omc_Types_boxIfUnboxedType(threadData, _t);
*tmp292 = mmc_mk_cons(__omcQ_24tmpVar6,0);
tmp292 = &MMC_CDR(*tmp292);
} else if (tmp294 == 1) {
break;
} else {
goto goto_2;
}
}
*tmp292 = mmc_mk_nil();
tmpMeta291 = __omcQ_24tmpVar7;
}
_tys = tmpMeta291;
if((!(listLength(_tys) == listLength(_typeVars))))
{
tmp296 = modelica_integer_to_modelica_string(listLength(_typeVars), ((modelica_integer) 0), 1);
tmp297 = modelica_integer_to_modelica_string(listLength(_tys), ((modelica_integer) 0), 1);
tmpMeta295 = mmc_mk_cons(omc_AbsynUtil_pathString(threadData, _fq_class, _OMC_LIT5, 1, 0), mmc_mk_cons(tmp296, mmc_mk_cons(tmp297, MMC_REFSTRUCTLIT(mmc_nil))));
omc_Error_addSourceMessage(threadData, _OMC_LIT451, tmpMeta295, _info);
goto goto_2;
}
_ty = omc_Types_setTypeVariables(threadData, _ty, _tys);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
_bc = mmc_mk_some(_ty);
tmpMeta298 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _OMC_LIT15;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _new_ci_state;
tmpMeta[0+7] = tmpMeta298;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = mmc_mk_none();
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 16: {
modelica_metatype tmpMeta299;
modelica_metatype tmpMeta300;
modelica_metatype tmpMeta301;
modelica_boolean tmp302;
modelica_metatype tmpMeta303;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta299 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta299,1,3) == 0) goto tmp3_end;
tmpMeta300 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta299), 4));
if (optionNone(tmpMeta300)) goto tmp3_end;
tmpMeta301 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta300), 1));
_tSpec = tmpMeta299;
tmp302 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp302) goto goto_2;
_cns = omc_Dump_unparseTypeSpec(threadData, _tSpec);
tmpMeta303 = mmc_mk_cons(_cns, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT454, tmpMeta303, _info);
goto goto_2;
goto tmp3_done;
}
case 17: {
modelica_metatype tmpMeta304;
modelica_metatype tmpMeta305;
modelica_metatype tmpMeta306;
modelica_boolean tmp307;
modelica_metatype tmpMeta308;
modelica_boolean tmp309;
modelica_metatype tmpMeta310;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta304 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta304,1,3) == 0) goto tmp3_end;
tmpMeta305 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta304), 2));
tmpMeta306 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta304), 3));
_tSpec = tmpMeta304;
_cn = tmpMeta305;
_tSpecs = tmpMeta306;
tmp4 += 2;
tmp307 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp307) goto goto_2;
tmpMeta308 = mmc_mk_box2(0, omc_AbsynUtil_pathString(threadData, _cn, _OMC_LIT5, 1, 0), mmc_mk_boolean((listLength(_tSpecs) == ((modelica_integer) 1))));
tmp309 = listMember(tmpMeta308, _OMC_LIT462);
if (0 != tmp309) goto goto_2;
_cns = omc_Dump_unparseTypeSpec(threadData, _tSpec);
tmpMeta310 = mmc_mk_cons(_cns, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT454, tmpMeta310, _info);
goto goto_2;
goto tmp3_done;
}
case 18: {
modelica_metatype tmpMeta311;
modelica_metatype tmpMeta312;
modelica_metatype tmpMeta313;
modelica_integer tmp314;
modelica_boolean tmp315;
modelica_metatype tmpMeta317;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta311 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta311,0,2) == 0) goto tmp3_end;
tmpMeta312 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta311), 2));
_cn = tmpMeta312;
_cache = tmp4_1;
_env = tmp4_2;
tmpMeta313 = omc_Mutable_access(threadData, _stopInst);
tmp314 = mmc_unbox_integer(tmpMeta313);
if (0 != tmp314) goto goto_2;
tmp315 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
omc_Lookup_lookupClass(threadData, _cache, _env, _cn, mmc_mk_none(), NULL, NULL);
tmp315 = 1;
goto goto_316;
goto_316:;
MMC_CATCH_INTERNAL(mmc_jumper)
if (tmp315) {goto goto_2;}
_cns = omc_AbsynUtil_pathString(threadData, _cn, _OMC_LIT5, 1, 0);
_scope_str = omc_FGraph_printGraphPathStr(threadData, _env);
tmpMeta317 = mmc_mk_cons(_cns, mmc_mk_cons(_scope_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT401, tmpMeta317, _info);
goto goto_2;
goto tmp3_done;
}
case 19: {
modelica_metatype tmpMeta318;
modelica_metatype tmpMeta319;
modelica_boolean tmp320;
modelica_boolean tmp321;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta318 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta318,0,2) == 0) goto tmp3_end;
tmpMeta319 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta318), 2));
_cn = tmpMeta319;
_cache = tmp4_1;
_env = tmp4_2;
tmp320 = omc_Flags_isSet(threadData, _OMC_LIT277);
if (1 != tmp320) goto goto_2;
tmp321 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
omc_Lookup_lookupClass(threadData, _cache, _env, _cn, mmc_mk_none(), NULL, NULL);
tmp321 = 1;
goto goto_322;
goto_322:;
MMC_CATCH_INTERNAL(mmc_jumper)
if (tmp321) {goto goto_2;}
omc_Debug_trace(threadData, _OMC_LIT463);
omc_Debug_trace(threadData, omc_AbsynUtil_pathString(threadData, _cn, _OMC_LIT5, 1, 0));
omc_Debug_trace(threadData, _OMC_LIT464);
omc_Debug_trace(threadData, omc_FGraph_printGraphStr(threadData, _env));
goto goto_2;
goto tmp3_done;
}
case 20: {
modelica_boolean tmp323;
modelica_metatype tmpMeta324;
tmp323 = omc_Flags_isSet(threadData, _OMC_LIT277);
if (1 != tmp323) goto goto_2;
omc_Debug_traceln(threadData, _OMC_LIT465);
_s = omc_FGraph_printGraphPathStr(threadData, _inEnv);
tmpMeta324 = stringAppend(_OMC_LIT466,_s);
omc_Debug_traceln(threadData, tmpMeta324);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 21) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outStore = tmpMeta[0+3];
_outDae = tmpMeta[0+4];
_outSets = tmpMeta[0+5];
_outState = tmpMeta[0+6];
_outTypesVarLst = tmpMeta[0+7];
_oty = tmpMeta[0+8];
_optDerAttr = tmpMeta[0+9];
_outEqualityConstraint = tmpMeta[0+10];
_outGraph = tmpMeta[0+11];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outStore) { *out_outStore = _outStore; }
if (out_outDae) { *out_outDae = _outDae; }
if (out_outSets) { *out_outSets = _outSets; }
if (out_outState) { *out_outState = _outState; }
if (out_outTypesVarLst) { *out_outTypesVarLst = _outTypesVarLst; }
if (out_oty) { *out_oty = _oty; }
if (out_optDerAttr) { *out_optDerAttr = _optDerAttr; }
if (out_outEqualityConstraint) { *out_outEqualityConstraint = _outEqualityConstraint; }
if (out_outGraph) { *out_outGraph = _outGraph; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instClassdef2(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod2, modelica_metatype _inPrefix3, modelica_metatype _inState5, modelica_metatype _className, modelica_metatype _inClassDef6, modelica_metatype _inRestriction7, modelica_metatype _inVisibility, modelica_metatype _inPartialPrefix, modelica_metatype _inEncapsulatedPrefix, modelica_metatype _inInstDims9, modelica_metatype _inImplicit, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype _instSingleCref, modelica_metatype _comment, modelica_metatype _info, modelica_metatype _stopInst, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outTypesVarLst, modelica_metatype *out_oty, modelica_metatype *out_optDerAttr, modelica_metatype *out_outEqualityConstraint, modelica_metatype *out_outGraph)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImplicit);
_outCache = omc_Inst_instClassdef2(threadData, _inCache, _inEnv, _inIH, _inStore, _inMod2, _inPrefix3, _inState5, _className, _inClassDef6, _inRestriction7, _inVisibility, _inPartialPrefix, _inEncapsulatedPrefix, _inInstDims9, tmp1, _inCallingScope, _inGraph, _inSets, _instSingleCref, _comment, _info, _stopInst, out_outEnv, out_outIH, out_outStore, out_outDae, out_outSets, out_outState, out_outTypesVarLst, out_oty, out_optDerAttr, out_outEqualityConstraint, out_outGraph);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instClassdefBasicType(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod2, modelica_metatype _inPrefix3, modelica_metatype _inState5, modelica_string _className, modelica_metatype _inClassDef6, modelica_metatype _inRestriction7, modelica_metatype _inVisibility, modelica_metatype _inInstDims9, modelica_boolean _inImplicit, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype _instSingleCref, modelica_metatype _info, modelica_metatype _stopInst, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outTypesVarLst, modelica_metatype *out_outTypesTypeOption, modelica_metatype *out_optDerAttr, modelica_metatype *out_outEqualityConstraint, modelica_metatype *out_outGraph)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outStore = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype _outSets = NULL;
modelica_metatype _outState = NULL;
modelica_metatype _outTypesVarLst = NULL;
modelica_metatype _outTypesTypeOption = NULL;
modelica_metatype _optDerAttr = NULL;
modelica_metatype _outEqualityConstraint = NULL;
modelica_metatype _outGraph = NULL;
modelica_metatype tmpMeta[12] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;volatile modelica_metatype tmp4_5;volatile modelica_metatype tmp4_6;volatile modelica_metatype tmp4_7;volatile modelica_metatype tmp4_8;volatile modelica_metatype tmp4_9;volatile modelica_boolean tmp4_10;volatile modelica_metatype tmp4_11;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inIH;
tmp4_4 = _inStore;
tmp4_5 = _inMod2;
tmp4_6 = _inPrefix3;
tmp4_7 = _inState5;
tmp4_8 = _inClassDef6;
tmp4_9 = _inInstDims9;
tmp4_10 = _inImplicit;
tmp4_11 = _inGraph;
{
modelica_metatype _cdefelts = NULL;
modelica_metatype _compelts = NULL;
modelica_metatype _extendselts = NULL;
modelica_metatype _els = NULL;
modelica_metatype _env1 = NULL;
modelica_metatype _env2 = NULL;
modelica_metatype _env3 = NULL;
modelica_metatype _env = NULL;
modelica_metatype _cdefelts_1 = NULL;
modelica_metatype _cdefelts_2 = NULL;
modelica_metatype _csets = NULL;
modelica_metatype _dae1 = NULL;
modelica_metatype _dae2 = NULL;
modelica_metatype _dae = NULL;
modelica_metatype _ci_state = NULL;
modelica_metatype _tys = NULL;
modelica_metatype _bc = NULL;
modelica_metatype _mods = NULL;
modelica_metatype _pre = NULL;
modelica_boolean _impl;
modelica_metatype _inst_dims = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _eqConstraint = NULL;
modelica_metatype _graph = NULL;
modelica_metatype _ih = NULL;
modelica_metatype _store = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,0,8) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
if (!listEmpty(tmpMeta7)) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
if (!listEmpty(tmpMeta8)) goto tmp3_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 5));
if (!listEmpty(tmpMeta9)) goto tmp3_end;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 6));
if (!listEmpty(tmpMeta10)) goto tmp3_end;
_els = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_ci_state = tmp4_7;
_inst_dims = tmp4_9;
_impl = tmp4_10;
_graph = tmp4_11;
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT468);
tmpMeta16 = omc_InstUtil_splitElts(threadData, _els, &tmpMeta11, &tmpMeta12, &tmpMeta15);
_cdefelts = tmpMeta16;
if (!listEmpty(tmpMeta11)) goto goto_2;
if (listEmpty(tmpMeta12)) goto goto_2;
tmpMeta13 = MMC_CAR(tmpMeta12);
tmpMeta14 = MMC_CDR(tmpMeta12);
_extendselts = tmpMeta12;
_compelts = tmpMeta15;
_cache = omc_InstUtil_addClassdefsToEnv(threadData, _cache, _env, _ih, _pre, _cdefelts, _impl, mmc_mk_some(_mods), 0 ,&_env1 ,&_ih);
_cdefelts_1 = omc_InstUtil_addNomod(threadData, _cdefelts);
_env2 = _env1;
_cdefelts_2 = _cdefelts_1;
_cache = omc_Inst_instElementList(threadData, _cache, _env2, _ih, _store, _mods, _pre, _ci_state, _cdefelts_2, _inst_dims, _impl, _OMC_LIT27, _graph, _inSets, 1 ,&_env3 ,&_ih ,&_store ,&_dae1 ,&_csets ,NULL ,&_tys ,&_graph ,NULL);
_mods = omc_Mod_removeFirstSubsRedecl(threadData, _mods);
omc_ErrorExt_rollBack(threadData, _OMC_LIT468);
_cache = omc_Inst_instBasictypeBaseclass(threadData, _cache, _env3, _ih, _store, _extendselts, _compelts, _mods, _inst_dims, _className, _info, _stopInst ,&_ih ,&_store ,&_dae2 ,&_bc ,&_tys);
_eqConstraint = omc_InstUtil_equalityConstraint(threadData, _env3, _els, _info);
_dae = omc_DAEUtil_joinDaes(threadData, _dae1, _dae2);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env3;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _dae;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _ci_state;
tmpMeta[0+7] = _tys;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = mmc_mk_none();
tmpMeta[0+10] = _eqConstraint;
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_boolean tmp21;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,0,8) == 0) goto tmp3_end;
tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
if (!listEmpty(tmpMeta17)) goto tmp3_end;
tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
if (!listEmpty(tmpMeta18)) goto tmp3_end;
tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 5));
if (!listEmpty(tmpMeta19)) goto tmp3_end;
tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 6));
if (!listEmpty(tmpMeta20)) goto tmp3_end;
tmp21 = omc_ErrorExt_isTopCheckpoint(threadData, _OMC_LIT468);
if (1 != tmp21) goto goto_2;
omc_ErrorExt_rollBack(threadData, _OMC_LIT468);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 2) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outStore = tmpMeta[0+3];
_outDae = tmpMeta[0+4];
_outSets = tmpMeta[0+5];
_outState = tmpMeta[0+6];
_outTypesVarLst = tmpMeta[0+7];
_outTypesTypeOption = tmpMeta[0+8];
_optDerAttr = tmpMeta[0+9];
_outEqualityConstraint = tmpMeta[0+10];
_outGraph = tmpMeta[0+11];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outStore) { *out_outStore = _outStore; }
if (out_outDae) { *out_outDae = _outDae; }
if (out_outSets) { *out_outSets = _outSets; }
if (out_outState) { *out_outState = _outState; }
if (out_outTypesVarLst) { *out_outTypesVarLst = _outTypesVarLst; }
if (out_outTypesTypeOption) { *out_outTypesTypeOption = _outTypesTypeOption; }
if (out_optDerAttr) { *out_optDerAttr = _optDerAttr; }
if (out_outEqualityConstraint) { *out_outEqualityConstraint = _outEqualityConstraint; }
if (out_outGraph) { *out_outGraph = _outGraph; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instClassdefBasicType(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod2, modelica_metatype _inPrefix3, modelica_metatype _inState5, modelica_metatype _className, modelica_metatype _inClassDef6, modelica_metatype _inRestriction7, modelica_metatype _inVisibility, modelica_metatype _inInstDims9, modelica_metatype _inImplicit, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype _instSingleCref, modelica_metatype _info, modelica_metatype _stopInst, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outTypesVarLst, modelica_metatype *out_outTypesTypeOption, modelica_metatype *out_optDerAttr, modelica_metatype *out_outEqualityConstraint, modelica_metatype *out_outGraph)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImplicit);
_outCache = omc_Inst_instClassdefBasicType(threadData, _inCache, _inEnv, _inIH, _inStore, _inMod2, _inPrefix3, _inState5, _className, _inClassDef6, _inRestriction7, _inVisibility, _inInstDims9, tmp1, _inGraph, _inSets, _instSingleCref, _info, _stopInst, out_outEnv, out_outIH, out_outStore, out_outDae, out_outSets, out_outState, out_outTypesVarLst, out_outTypesTypeOption, out_optDerAttr, out_outEqualityConstraint, out_outGraph);
return _outCache;
}
DLLExport
modelica_metatype omc_Inst_instClassdef(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _store, modelica_metatype _inMod2, modelica_metatype _inPrefix3, modelica_metatype _inState5, modelica_string _className, modelica_metatype _inClassDef6, modelica_metatype _inRestriction7, modelica_metatype _inVisibility, modelica_metatype _inPartialPrefix, modelica_metatype _inEncapsulatedPrefix, modelica_metatype _inInstDims9, modelica_boolean _inImplicit, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype _instSingleCref, modelica_metatype _comment, modelica_metatype _info, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outTypesVarLst, modelica_metatype *out_outTypesTypeOption, modelica_metatype *out_optDerAttr, modelica_metatype *out_outEqualityConstraint, modelica_metatype *out_outGraph)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outStore = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype _outSets = NULL;
modelica_metatype _outState = NULL;
modelica_metatype _outTypesVarLst = NULL;
modelica_metatype _outTypesTypeOption = NULL;
modelica_metatype _optDerAttr = NULL;
modelica_metatype _outEqualityConstraint = NULL;
modelica_metatype _outGraph = NULL;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = omc_Inst_instClassdef2(threadData, _inCache, _inEnv, _inIH, _store, _inMod2, _inPrefix3, _inState5, _className, _inClassDef6, _inRestriction7, _inVisibility, _inPartialPrefix, _inEncapsulatedPrefix, _inInstDims9, _inImplicit, _inCallingScope, _inGraph, _inSets, _instSingleCref, _comment, _info, omc_Mutable_create(threadData, mmc_mk_boolean(0)) ,&_outEnv ,&_outIH ,&_outStore ,&_outDae ,&_outSets ,&_outState ,&_outTypesVarLst ,&_outTypesTypeOption ,&_optDerAttr ,&_outEqualityConstraint ,&_outGraph);
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outStore) { *out_outStore = _outStore; }
if (out_outDae) { *out_outDae = _outDae; }
if (out_outSets) { *out_outSets = _outSets; }
if (out_outState) { *out_outState = _outState; }
if (out_outTypesVarLst) { *out_outTypesVarLst = _outTypesVarLst; }
if (out_outTypesTypeOption) { *out_outTypesTypeOption = _outTypesTypeOption; }
if (out_optDerAttr) { *out_optDerAttr = _optDerAttr; }
if (out_outEqualityConstraint) { *out_outEqualityConstraint = _outEqualityConstraint; }
if (out_outGraph) { *out_outGraph = _outGraph; }
return _outCache;
}
modelica_metatype boxptr_Inst_instClassdef(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _store, modelica_metatype _inMod2, modelica_metatype _inPrefix3, modelica_metatype _inState5, modelica_metatype _className, modelica_metatype _inClassDef6, modelica_metatype _inRestriction7, modelica_metatype _inVisibility, modelica_metatype _inPartialPrefix, modelica_metatype _inEncapsulatedPrefix, modelica_metatype _inInstDims9, modelica_metatype _inImplicit, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype _instSingleCref, modelica_metatype _comment, modelica_metatype _info, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outTypesVarLst, modelica_metatype *out_outTypesTypeOption, modelica_metatype *out_optDerAttr, modelica_metatype *out_outEqualityConstraint, modelica_metatype *out_outGraph)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImplicit);
_outCache = omc_Inst_instClassdef(threadData, _inCache, _inEnv, _inIH, _store, _inMod2, _inPrefix3, _inState5, _className, _inClassDef6, _inRestriction7, _inVisibility, _inPartialPrefix, _inEncapsulatedPrefix, _inInstDims9, tmp1, _inCallingScope, _inGraph, _inSets, _instSingleCref, _comment, _info, out_outEnv, out_outIH, out_outStore, out_outDae, out_outSets, out_outState, out_outTypesVarLst, out_outTypesTypeOption, out_optDerAttr, out_outEqualityConstraint, out_outGraph);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_partialInstClassIn__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inClass, modelica_metatype _inVisibility, modelica_metatype _inInstDims, modelica_boolean _partialInst, modelica_integer _numIter, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outState, modelica_metatype *out_outVars)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outState = NULL;
modelica_metatype _outVars = NULL;
modelica_metatype tmpMeta1;
modelica_boolean _success;
modelica_boolean tmp2 = 0;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _inCache;
_outEnv = _inEnv;
_outIH = _inIH;
_outState = _inState;
tmpMeta1 = MMC_REFSTRUCTLIT(mmc_nil);
_outVars = tmpMeta1;
{
volatile modelica_metatype tmp5_1;
tmp5_1 = _inClass;
{
volatile mmc_switch_type tmp5;
int tmp6;
tmp5 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp4_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp5 < 7; tmp5++) {
switch (MMC_SWITCH_CAST(tmp5)) {
case 0: {
modelica_metatype tmpMeta7;
if (mmc__uniontype__metarecord__typedef__equal(tmp5_1,2,8) == 0) goto tmp4_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp5_1), 2));
if (4 != MMC_STRLEN(tmpMeta7) || strcmp(MMC_STRINGDATA(_OMC_LIT300), MMC_STRINGDATA(tmpMeta7)) != 0) goto tmp4_end;
tmp5 += 4;
tmp2 = 1;
goto tmp4_done;
}
case 1: {
modelica_metatype tmpMeta8;
if (mmc__uniontype__metarecord__typedef__equal(tmp5_1,2,8) == 0) goto tmp4_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp5_1), 2));
if (7 != MMC_STRLEN(tmpMeta8) || strcmp(MMC_STRINGDATA(_OMC_LIT297), MMC_STRINGDATA(tmpMeta8)) != 0) goto tmp4_end;
tmp5 += 3;
tmp2 = 1;
goto tmp4_done;
}
case 2: {
modelica_metatype tmpMeta9;
if (mmc__uniontype__metarecord__typedef__equal(tmp5_1,2,8) == 0) goto tmp4_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp5_1), 2));
if (6 != MMC_STRLEN(tmpMeta9) || strcmp(MMC_STRINGDATA(_OMC_LIT303), MMC_STRINGDATA(tmpMeta9)) != 0) goto tmp4_end;
tmp5 += 2;
tmp2 = 1;
goto tmp4_done;
}
case 3: {
modelica_metatype tmpMeta10;
if (mmc__uniontype__metarecord__typedef__equal(tmp5_1,2,8) == 0) goto tmp4_end;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp5_1), 2));
if (7 != MMC_STRLEN(tmpMeta10) || strcmp(MMC_STRINGDATA(_OMC_LIT294), MMC_STRINGDATA(tmpMeta10)) != 0) goto tmp4_end;
tmp5 += 1;
tmp2 = 1;
goto tmp4_done;
}
case 4: {
modelica_metatype tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmp5_1,2,8) == 0) goto tmp4_end;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp5_1), 2));
if (5 != MMC_STRLEN(tmpMeta11) || strcmp(MMC_STRINGDATA(_OMC_LIT515), MMC_STRINGDATA(tmpMeta11)) != 0) goto tmp4_end;
if (!(omc_Flags_getConfigEnum(threadData, _OMC_LIT514) == ((modelica_integer) 33))) goto tmp4_end;
tmp2 = 1;
goto tmp4_done;
}
case 5: {
if (mmc__uniontype__metarecord__typedef__equal(tmp5_1,2,8) == 0) goto tmp4_end;
_outCache = omc_Inst_partialInstClassdef(threadData, _inCache, _inEnv, _inIH, _inMod, _inPrefix, _inState, _inClass, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inClass), 7))), _inVisibility, _inInstDims, _numIter ,&_outEnv ,&_outIH ,&_outState ,&_outVars);
tmp2 = 1;
goto tmp4_done;
}
case 6: {
tmp2 = 0;
goto tmp4_done;
}
}
goto tmp4_end;
tmp4_end: ;
}
goto goto_3;
tmp4_done:
(void)tmp5;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp4_done2;
goto_3:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp5 < 7) {
goto tmp4_top;
}
MMC_THROW_INTERNAL();
tmp4_done2:;
}
}
_success = tmp2;
omc_System_setPartialInstantiation(threadData, _partialInst);
if((!_success))
{
MMC_THROW_INTERNAL();
}
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outState) { *out_outState = _outState; }
if (out_outVars) { *out_outVars = _outVars; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_partialInstClassIn__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inClass, modelica_metatype _inVisibility, modelica_metatype _inInstDims, modelica_metatype _partialInst, modelica_metatype _numIter, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outState, modelica_metatype *out_outVars)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_partialInst);
tmp2 = mmc_unbox_integer(_numIter);
_outCache = omc_Inst_partialInstClassIn__dispatch(threadData, _inCache, _inEnv, _inIH, _inMod, _inPrefix, _inState, _inClass, _inVisibility, _inInstDims, tmp1, tmp2, out_outEnv, out_outIH, out_outState, out_outVars);
return _outCache;
}
DLLExport
modelica_metatype omc_Inst_partialInstClassIn(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype __omcQ_24in_5Fenv, modelica_metatype __omcQ_24in_5Fih, modelica_metatype _mod, modelica_metatype _prefix, modelica_metatype __omcQ_24in_5Fstate, modelica_metatype _cls, modelica_metatype _visibility, modelica_metatype _instDims, modelica_integer _numIter, modelica_metatype *out_env, modelica_metatype *out_ih, modelica_metatype *out_state, modelica_metatype *out_vars)
{
jmp_buf *old_mmc_jumper = threadData->mmc_jumper;
modelica_metatype _cache = NULL;
modelica_metatype _env = NULL;
modelica_metatype _ih = NULL;
modelica_metatype _state = NULL;
modelica_metatype _vars = NULL;
modelica_metatype _cache_path = NULL;
modelica_metatype _inputs = NULL;
modelica_metatype _outputs = NULL;
modelica_metatype _bbx = NULL;
modelica_metatype _bby = NULL;
modelica_metatype _m = NULL;
modelica_metatype _pre = NULL;
modelica_metatype _st = NULL;
modelica_metatype _e = NULL;
modelica_metatype _dims = NULL;
modelica_boolean _partial_inst;
modelica_metatype tmpMeta23;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
_env = __omcQ_24in_5Fenv;
_ih = __omcQ_24in_5Fih;
_state = __omcQ_24in_5Fstate;
_cache_path = omc_Inst_generateCachePath(threadData, _env, _cls, _prefix, _OMC_LIT27);
if(omc_Flags_isSet(threadData, _OMC_LIT26))
{
{
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp2_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
tmpMeta5 = omc_InstHashTable_get(threadData, _cache_path);
if (listEmpty(tmpMeta5)) goto goto_1;
tmpMeta6 = MMC_CAR(tmpMeta5);
tmpMeta7 = MMC_CDR(tmpMeta5);
if (listEmpty(tmpMeta7)) goto goto_1;
tmpMeta8 = MMC_CAR(tmpMeta7);
tmpMeta9 = MMC_CDR(tmpMeta7);
if (optionNone(tmpMeta8)) goto goto_1;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,1,2) == 0) goto goto_1;
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 3));
if (!listEmpty(tmpMeta9)) goto goto_1;
_inputs = tmpMeta11;
_outputs = tmpMeta12;
tmpMeta13 = _inputs;
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 1));
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 2));
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 3));
tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta17,2,8) == 0) goto goto_1;
tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 5));
_m = tmpMeta14;
_pre = tmpMeta15;
_st = tmpMeta16;
_e = tmpMeta17;
_dims = tmpMeta18;
omc_InstUtil_prefixEqualUnlessBasicType(threadData, _pre, _prefix, _cls);
if((((valueEq(_dims, _instDims) && valueEq(_m, _mod)) && valueEq(_st, _state)) && valueEq(_e, _cls)))
{
tmpMeta19 = _outputs;
tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta19), 1));
tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta19), 2));
tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta19), 3));
_env = tmpMeta20;
_state = tmpMeta21;
_vars = tmpMeta22;
omc_Inst_showCacheInfo(threadData, _OMC_LIT516, _cache_path);
goto _return;
}
goto tmp2_done;
}
case 1: {
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
tmp2_done:
(void)tmp3;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp2_done2;
goto_1:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp3 < 2) {
goto tmp2_top;
}
MMC_THROW_INTERNAL();
tmp2_done2:;
}
}
;
}
if((_numIter >= ((modelica_integer) 256)))
{
tmpMeta23 = mmc_mk_cons(_OMC_LIT520, mmc_mk_cons(omc_FGraph_printGraphPathStr(threadData, _env), MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT519, tmpMeta23, omc_SCodeUtil_elementInfo(threadData, _cls));
MMC_THROW_INTERNAL();
}
{
{
volatile mmc_switch_type tmp26;
int tmp27;
tmp26 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp25_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp26 < 2; tmp26++) {
switch (MMC_SWITCH_CAST(tmp26)) {
case 0: {
modelica_metatype tmpMeta28;
modelica_metatype tmpMeta29;
modelica_metatype tmpMeta30;
_partial_inst = omc_System_getPartialInstantiation(threadData);
omc_System_setPartialInstantiation(threadData, 1);
tmpMeta28 = mmc_mk_box5(0, _mod, _prefix, _state, _cls, _instDims);
_inputs = tmpMeta28;
_cache = omc_Inst_partialInstClassIn__dispatch(threadData, _cache, _env, _ih, _mod, _prefix, _state, _cls, _visibility, _instDims, _partial_inst, ((modelica_integer) 1) + _numIter ,&_env ,&_ih ,&_state ,&_vars);
tmpMeta29 = mmc_mk_box3(0, _env, _state, _vars);
_outputs = tmpMeta29;
omc_Inst_showCacheInfo(threadData, _OMC_LIT521, _cache_path);
tmpMeta30 = mmc_mk_box3(4, &InstHashTable_CachedInstItem_FUNC__partialInstClassIn__desc, _inputs, _outputs);
omc_InstHashTable_addToInstCache(threadData, _cache_path, mmc_mk_none(), mmc_mk_some(tmpMeta30));
goto tmp25_done;
}
case 1: {
modelica_boolean tmp31;
modelica_metatype tmpMeta32;
modelica_metatype tmpMeta33;
modelica_metatype tmpMeta34;
tmp31 = omc_Flags_isSet(threadData, _OMC_LIT277);
if (1 != tmp31) goto goto_24;
tmpMeta32 = stringAppend(_OMC_LIT522,omc_SCodeUtil_elementName(threadData, _cls));
tmpMeta33 = stringAppend(tmpMeta32,_OMC_LIT523);
tmpMeta34 = stringAppend(tmpMeta33,omc_FGraph_printGraphPathStr(threadData, _env));
omc_Debug_traceln(threadData, tmpMeta34);
goto goto_24;
goto tmp25_done;
}
}
goto tmp25_end;
tmp25_end: ;
}
goto goto_24;
tmp25_done:
(void)tmp26;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp25_done2;
goto_24:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp26 < 2) {
goto tmp25_top;
}
MMC_THROW_INTERNAL();
tmp25_done2:;
}
}
;
_return: OMC_LABEL_UNUSED
if (out_env) { *out_env = _env; }
if (out_ih) { *out_ih = _ih; }
if (out_state) { *out_state = _state; }
if (out_vars) { *out_vars = _vars; }
threadData->mmc_jumper = old_mmc_jumper;
return _cache;
}
modelica_metatype boxptr_Inst_partialInstClassIn(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype __omcQ_24in_5Fenv, modelica_metatype __omcQ_24in_5Fih, modelica_metatype _mod, modelica_metatype _prefix, modelica_metatype __omcQ_24in_5Fstate, modelica_metatype _cls, modelica_metatype _visibility, modelica_metatype _instDims, modelica_metatype _numIter, modelica_metatype *out_env, modelica_metatype *out_ih, modelica_metatype *out_state, modelica_metatype *out_vars)
{
modelica_integer tmp1;
modelica_metatype _cache = NULL;
tmp1 = mmc_unbox_integer(_numIter);
_cache = omc_Inst_partialInstClassIn(threadData, __omcQ_24in_5Fcache, __omcQ_24in_5Fenv, __omcQ_24in_5Fih, _mod, _prefix, __omcQ_24in_5Fstate, _cls, _visibility, _instDims, tmp1, out_env, out_ih, out_state, out_vars);
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_arrayBasictypeBaseclass(threadData_t *threadData, modelica_metatype _inInstDims, modelica_metatype _inType)
{
modelica_metatype _outOptType = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _inInstDims;
{
modelica_metatype _ty = NULL;
modelica_metatype _dims = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_1)) goto tmp3_end;
tmpMeta1 = mmc_mk_none();
goto tmp3_done;
}
case 1: {
_dims = omc_List_last(threadData, _inInstDims);
_ty = omc_Expression_liftArrayLeftList(threadData, _inType, _dims);
tmpMeta1 = mmc_mk_some(_ty);
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outOptType = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _outOptType;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instBuiltinAttribute(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_string _id, modelica_metatype _optVal, modelica_metatype _bind, modelica_metatype _inExpectedTp, modelica_metatype _bindProp)
{
modelica_metatype _var = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;volatile modelica_metatype tmp4_5;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _optVal;
tmp4_4 = _inExpectedTp;
tmp4_5 = _bindProp;
{
modelica_metatype _v = NULL;
modelica_metatype _t_1 = NULL;
modelica_metatype _bindTp = NULL;
modelica_metatype _bind1 = NULL;
modelica_metatype _vbind = NULL;
modelica_metatype _c = NULL;
modelica_metatype _d = NULL;
modelica_string _s = NULL;
modelica_string _s1 = NULL;
modelica_string _s2 = NULL;
modelica_metatype _expectedTp = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _env = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 9; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_boolean tmp9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (optionNone(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,2) == 0) goto tmp3_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 3));
_v = tmpMeta6;
_bindTp = tmpMeta7;
_c = tmpMeta8;
_expectedTp = tmp4_4;
tmp9 = valueEq(_c, _OMC_LIT524);
if (0 != tmp9) goto goto_2;
_bind1 = omc_Types_matchType(threadData, _bind, _bindTp, _expectedTp, 1 ,&_t_1);
_vbind = omc_Types_matchType(threadData, omc_ValuesUtil_valueExp(threadData, _v, mmc_mk_none()), _bindTp, _expectedTp, 1, NULL);
_v = omc_ValuesUtil_expValue(threadData, _vbind);
tmpMeta10 = mmc_mk_box5(4, &DAE_Binding_EQBOUND__desc, _bind1, mmc_mk_some(_v), _OMC_LIT527, _OMC_LIT528);
tmpMeta11 = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _id, _OMC_LIT526, _t_1, tmpMeta10, mmc_mk_boolean(0), mmc_mk_none());
tmpMeta1 = tmpMeta11;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_boolean tmp18;
modelica_boolean tmp19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
if (optionNone(tmp4_3)) goto tmp3_end;
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,2) == 0) goto tmp3_end;
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta13,6,2) == 0) goto tmp3_end;
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta13), 3));
if (listEmpty(tmpMeta14)) goto tmp3_end;
tmpMeta15 = MMC_CAR(tmpMeta14);
tmpMeta16 = MMC_CDR(tmpMeta14);
if (!listEmpty(tmpMeta16)) goto tmp3_end;
tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 3));
_v = tmpMeta12;
_bindTp = tmpMeta13;
_d = tmpMeta15;
_c = tmpMeta17;
_expectedTp = tmp4_4;
tmp18 = valueEq(_c, _OMC_LIT524);
if (0 != tmp18) goto goto_2;
tmp19 = omc_Flags_getConfigBool(threadData, _OMC_LIT534);
if (1 != tmp19) goto goto_2;
_expectedTp = omc_Types_liftArray(threadData, _expectedTp, _d);
_bind1 = omc_Types_matchType(threadData, _bind, _bindTp, _expectedTp, 1 ,&_t_1);
_vbind = omc_Types_matchType(threadData, omc_ValuesUtil_valueExp(threadData, _v, mmc_mk_none()), _bindTp, _expectedTp, 1, NULL);
_v = omc_ValuesUtil_expValue(threadData, _vbind);
tmpMeta20 = mmc_mk_box5(4, &DAE_Binding_EQBOUND__desc, _bind1, mmc_mk_some(_v), _OMC_LIT527, _OMC_LIT528);
tmpMeta21 = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _id, _OMC_LIT526, _t_1, tmpMeta20, mmc_mk_boolean(0), mmc_mk_none());
tmpMeta1 = tmpMeta21;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_boolean tmp24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,2) == 0) goto tmp3_end;
tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
tmpMeta23 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 3));
_bindTp = tmpMeta22;
_c = tmpMeta23;
_cache = tmp4_1;
_env = tmp4_2;
_expectedTp = tmp4_4;
tmp24 = valueEq(_c, _OMC_LIT524);
if (0 != tmp24) goto goto_2;
_bind1 = omc_Types_matchType(threadData, _bind, _bindTp, _expectedTp, 1 ,&_t_1);
_cache = omc_Ceval_ceval(threadData, _cache, _env, _bind1, 0, _OMC_LIT535, ((modelica_integer) 0) ,&_v);
tmpMeta25 = mmc_mk_box5(4, &DAE_Binding_EQBOUND__desc, _bind1, mmc_mk_some(_v), _OMC_LIT527, _OMC_LIT528);
tmpMeta26 = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _id, _OMC_LIT526, _t_1, tmpMeta25, mmc_mk_boolean(0), mmc_mk_none());
tmpMeta1 = tmpMeta26;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
modelica_metatype tmpMeta29;
modelica_metatype tmpMeta30;
modelica_metatype tmpMeta31;
modelica_boolean tmp32;
modelica_boolean tmp33;
modelica_metatype tmpMeta34;
modelica_metatype tmpMeta35;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,2) == 0) goto tmp3_end;
tmpMeta27 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta27,6,2) == 0) goto tmp3_end;
tmpMeta28 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta27), 3));
if (listEmpty(tmpMeta28)) goto tmp3_end;
tmpMeta29 = MMC_CAR(tmpMeta28);
tmpMeta30 = MMC_CDR(tmpMeta28);
if (!listEmpty(tmpMeta30)) goto tmp3_end;
tmpMeta31 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 3));
_bindTp = tmpMeta27;
_d = tmpMeta29;
_c = tmpMeta31;
_cache = tmp4_1;
_env = tmp4_2;
_expectedTp = tmp4_4;
tmp32 = valueEq(_c, _OMC_LIT524);
if (0 != tmp32) goto goto_2;
tmp33 = omc_Flags_getConfigBool(threadData, _OMC_LIT534);
if (1 != tmp33) goto goto_2;
_expectedTp = omc_Types_liftArray(threadData, _expectedTp, _d);
_bind1 = omc_Types_matchType(threadData, _bind, _bindTp, _expectedTp, 1 ,&_t_1);
_cache = omc_Ceval_ceval(threadData, _cache, _env, _bind1, 0, _OMC_LIT535, ((modelica_integer) 0) ,&_v);
tmpMeta34 = mmc_mk_box5(4, &DAE_Binding_EQBOUND__desc, _bind1, mmc_mk_some(_v), _OMC_LIT527, _OMC_LIT528);
tmpMeta35 = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _id, _OMC_LIT526, _t_1, tmpMeta34, mmc_mk_boolean(0), mmc_mk_none());
tmpMeta1 = tmpMeta35;
goto tmp3_done;
}
case 4: {
modelica_metatype tmpMeta36;
modelica_metatype tmpMeta37;
modelica_boolean tmp38;
modelica_boolean tmp39;
modelica_metatype tmpMeta40;
modelica_metatype tmpMeta41;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,2) == 0) goto tmp3_end;
tmpMeta36 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
tmpMeta37 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 3));
_bindTp = tmpMeta36;
_c = tmpMeta37;
_expectedTp = tmp4_4;
if(omc_Flags_getConfigBool(threadData, _OMC_LIT539))
{
tmp38 = valueEq(_c, _OMC_LIT524);
if (1 != tmp38) goto goto_2;
}
else
{
tmp39 = valueEq(_c, _OMC_LIT524);
if (0 != tmp39) goto goto_2;
}
_bind1 = omc_Types_matchType(threadData, _bind, _bindTp, _expectedTp, 1 ,&_t_1);
tmpMeta40 = mmc_mk_box5(4, &DAE_Binding_EQBOUND__desc, _bind1, mmc_mk_none(), _OMC_LIT527, _OMC_LIT528);
tmpMeta41 = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _id, _OMC_LIT526, _t_1, tmpMeta40, mmc_mk_boolean(0), mmc_mk_none());
tmpMeta1 = tmpMeta41;
goto tmp3_done;
}
case 5: {
modelica_metatype tmpMeta42;
modelica_boolean tmp43;
modelica_metatype tmpMeta44;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,2) == 0) goto tmp3_end;
tmpMeta42 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 3));
_c = tmpMeta42;
tmp43 = valueEq(_c, _OMC_LIT524);
if (1 != tmp43) goto goto_2;
_s = omc_ExpressionDump_printExpStr(threadData, _bind);
tmpMeta44 = mmc_mk_cons(_id, mmc_mk_cons(_OMC_LIT543, mmc_mk_cons(_s, mmc_mk_cons(_OMC_LIT544, MMC_REFSTRUCTLIT(mmc_nil)))));
omc_Error_addMessage(threadData, _OMC_LIT542, tmpMeta44);
goto goto_2;
goto tmp3_done;
}
case 6: {
modelica_metatype tmpMeta45;
modelica_boolean tmp46;
modelica_metatype tmpMeta48;
modelica_metatype tmpMeta49;
modelica_metatype tmpMeta50;
modelica_metatype tmpMeta51;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,0,2) == 0) goto tmp3_end;
tmpMeta45 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
_bindTp = tmpMeta45;
_expectedTp = tmp4_4;
tmp46 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
omc_Types_matchType(threadData, _bind, _bindTp, _expectedTp, 1, NULL);
tmp46 = 1;
goto goto_47;
goto_47:;
MMC_CATCH_INTERNAL(mmc_jumper)
if (tmp46) {goto goto_2;}
tmpMeta48 = stringAppend(_OMC_LIT545,_id);
tmpMeta49 = stringAppend(tmpMeta48,_OMC_LIT546);
tmpMeta50 = stringAppend(tmpMeta49,omc_Types_unparseType(threadData, _bindTp));
_s1 = tmpMeta50;
_s2 = omc_Types_unparseType(threadData, _expectedTp);
tmpMeta51 = mmc_mk_cons(_s1, mmc_mk_cons(_s2, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addMessage(threadData, _OMC_LIT549, tmpMeta51);
goto goto_2;
goto tmp3_done;
}
case 7: {
modelica_metatype tmpMeta52;
modelica_boolean tmp53;
modelica_metatype tmpMeta54;
modelica_metatype tmpMeta55;
modelica_metatype tmpMeta56;
modelica_metatype tmpMeta57;
modelica_metatype tmpMeta58;
modelica_metatype tmpMeta59;
modelica_metatype tmpMeta60;
modelica_metatype tmpMeta61;
modelica_metatype tmpMeta62;
if (optionNone(tmp4_3)) goto tmp3_end;
tmpMeta52 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_3), 1));
_v = tmpMeta52;
_expectedTp = tmp4_4;
tmp53 = omc_Flags_isSet(threadData, _OMC_LIT277);
if (1 != tmp53) goto goto_2;
tmpMeta54 = stringAppend(_OMC_LIT550,_id);
tmpMeta55 = stringAppend(tmpMeta54,_OMC_LIT551);
tmpMeta56 = stringAppend(tmpMeta55,omc_ValuesUtil_printValStr(threadData, _v));
tmpMeta57 = stringAppend(tmpMeta56,_OMC_LIT552);
tmpMeta58 = stringAppend(tmpMeta57,omc_ExpressionDump_printExpStr(threadData, _bind));
tmpMeta59 = stringAppend(tmpMeta58,_OMC_LIT553);
tmpMeta60 = stringAppend(tmpMeta59,omc_Types_printTypeStr(threadData, _expectedTp));
tmpMeta61 = stringAppend(tmpMeta60,_OMC_LIT554);
tmpMeta62 = stringAppend(tmpMeta61,omc_Types_printPropStr(threadData, _bindProp));
omc_Debug_traceln(threadData, tmpMeta62);
goto goto_2;
goto tmp3_done;
}
case 8: {
modelica_boolean tmp63;
modelica_metatype tmpMeta64;
modelica_metatype tmpMeta65;
modelica_metatype tmpMeta66;
modelica_metatype tmpMeta67;
modelica_metatype tmpMeta68;
modelica_metatype tmpMeta69;
modelica_metatype tmpMeta70;
modelica_metatype tmpMeta71;
_expectedTp = tmp4_4;
tmp63 = omc_Flags_isSet(threadData, _OMC_LIT277);
if (1 != tmp63) goto goto_2;
tmpMeta64 = stringAppend(_OMC_LIT550,_id);
tmpMeta65 = stringAppend(tmpMeta64,_OMC_LIT555);
tmpMeta66 = stringAppend(tmpMeta65,_OMC_LIT552);
tmpMeta67 = stringAppend(tmpMeta66,omc_ExpressionDump_printExpStr(threadData, _bind));
tmpMeta68 = stringAppend(tmpMeta67,_OMC_LIT553);
tmpMeta69 = stringAppend(tmpMeta68,omc_Types_printTypeStr(threadData, _expectedTp));
tmpMeta70 = stringAppend(tmpMeta69,_OMC_LIT554);
tmpMeta71 = stringAppend(tmpMeta70,omc_Types_printPropStr(threadData, _bindProp));
omc_Debug_traceln(threadData, tmpMeta71);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 9) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_var = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _var;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instBasicTypeAttributes2(threadData_t *threadData, modelica_metatype _inSubMod, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inBaseType, modelica_fnptr _inTypeFunc)
{
modelica_metatype _outVar = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _inSubMod;
{
modelica_string _name = NULL;
modelica_metatype _ty = NULL;
modelica_metatype _exp = NULL;
modelica_metatype _val = NULL;
modelica_metatype _p = NULL;
modelica_metatype _info = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,0,5) == 0) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 5));
if (optionNone(tmpMeta8)) goto tmp3_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta9,0,5) == 0) goto tmp3_end;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta9), 2));
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta9), 3));
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta9), 4));
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 6));
_name = tmpMeta6;
_exp = tmpMeta10;
_val = tmpMeta11;
_p = tmpMeta12;
_info = tmpMeta13;
_ty = omc_Inst_getRealAttributeType(threadData, _name, _inBaseType, _info);
tmpMeta1 = omc_Inst_instBuiltinAttribute(threadData, _inCache, _inEnv, _name, _val, _exp, _ty, _p);
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta14;
modelica_boolean tmp15;
modelica_metatype tmpMeta16;
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
_name = tmpMeta14;
tmp15 = omc_Flags_isSet(threadData, _OMC_LIT277);
if (1 != tmp15) goto goto_2;
tmpMeta16 = stringAppend(_OMC_LIT556,_name);
omc_Debug_traceln(threadData, tmpMeta16);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outVar = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _outVar;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instBasicTypeAttributes(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inMod, modelica_metatype _inBaseType, modelica_fnptr _inTypeFunc, modelica_metatype _inPrefix)
{
modelica_metatype _outVars = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _inMod;
{
modelica_metatype _submods = NULL;
int tmp4;
{
switch (MMC_SWITCH_CAST(valueConstructor(tmp4_1))) {
case 3: {
modelica_metatype tmpMeta5;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,5) == 0) goto tmp3_end;
tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 4));
_submods = tmpMeta5;
tmpMeta1 = omc_List_map4(threadData, _submods, boxvar_Inst_instBasicTypeAttributes2, _inCache, _inEnv, _inBaseType, ((modelica_fnptr) _inTypeFunc));
goto tmp3_done;
}
case 5: {
modelica_metatype tmpMeta6;
tmpMeta6 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta1 = tmpMeta6;
goto tmp3_done;
}
case 4: {
modelica_metatype tmpMeta7;
tmpMeta7 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta1 = tmpMeta7;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outVars = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _outVars;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getEnumAttributeType(threadData_t *threadData, modelica_string _inAttrName, modelica_metatype _inBaseType, modelica_metatype _inInfo)
{
modelica_metatype _outType = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp4_1;
tmp4_1 = _inAttrName;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 6; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT563), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT557;
goto tmp3_done;
}
case 1: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT148), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _inBaseType;
goto tmp3_done;
}
case 2: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT145), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _inBaseType;
goto tmp3_done;
}
case 3: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT564), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _inBaseType;
goto tmp3_done;
}
case 4: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT565), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT558;
goto tmp3_done;
}
case 5: {
modelica_metatype tmpMeta6;
tmpMeta6 = mmc_mk_cons(_inAttrName, mmc_mk_cons(_OMC_LIT562, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT561, tmpMeta6, _inInfo);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outType = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _outType;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getClockAttributeType(threadData_t *threadData, modelica_string _inAttrName, modelica_metatype _inBaseType, modelica_metatype _inInfo)
{
modelica_metatype _outType = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 0; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outType = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _outType;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getBoolAttributeType(threadData_t *threadData, modelica_string _inAttrName, modelica_metatype _inBaseType, modelica_metatype _inInfo)
{
modelica_metatype _outType = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp4_1;
tmp4_1 = _inAttrName;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 4; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT563), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT557;
goto tmp3_done;
}
case 1: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT564), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _inBaseType;
goto tmp3_done;
}
case 2: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT565), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT558;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta6;
tmpMeta6 = mmc_mk_cons(_inAttrName, mmc_mk_cons(_OMC_LIT294, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT561, tmpMeta6, _inInfo);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outType = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _outType;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getStringAttributeType(threadData_t *threadData, modelica_string _inAttrName, modelica_metatype _inBaseType, modelica_metatype _inInfo)
{
modelica_metatype _outType = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp4_1;
tmp4_1 = _inAttrName;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 3; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT563), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT557;
goto tmp3_done;
}
case 1: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT564), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _inBaseType;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta6;
tmpMeta6 = mmc_mk_cons(_inAttrName, mmc_mk_cons(_OMC_LIT303, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT561, tmpMeta6, _inInfo);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outType = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _outType;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getIntAttributeType(threadData_t *threadData, modelica_string _inAttrName, modelica_metatype _inBaseType, modelica_metatype _inInfo)
{
modelica_metatype _outType = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp4_1;
tmp4_1 = _inAttrName;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 9; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT563), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT557;
goto tmp3_done;
}
case 1: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT148), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _inBaseType;
goto tmp3_done;
}
case 2: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT145), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _inBaseType;
goto tmp3_done;
}
case 3: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT564), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _inBaseType;
goto tmp3_done;
}
case 4: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT565), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT558;
goto tmp3_done;
}
case 5: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT603), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _inBaseType;
goto tmp3_done;
}
case 6: {
if (9 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT604), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT584;
goto tmp3_done;
}
case 7: {
if (12 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT605), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT602;
goto tmp3_done;
}
case 8: {
modelica_metatype tmpMeta6;
tmpMeta6 = mmc_mk_cons(_inAttrName, mmc_mk_cons(_OMC_LIT297, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT561, tmpMeta6, _inInfo);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outType = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _outType;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getRealAttributeType(threadData_t *threadData, modelica_string _inAttrName, modelica_metatype _inBaseType, modelica_metatype _inInfo)
{
modelica_metatype _outType = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp4_1;
tmp4_1 = _inAttrName;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 12; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (8 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT563), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT557;
goto tmp3_done;
}
case 1: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT634), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT557;
goto tmp3_done;
}
case 2: {
if (11 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT635), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT557;
goto tmp3_done;
}
case 3: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT148), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _inBaseType;
goto tmp3_done;
}
case 4: {
if (3 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT145), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _inBaseType;
goto tmp3_done;
}
case 5: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT564), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _inBaseType;
goto tmp3_done;
}
case 6: {
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT565), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT558;
goto tmp3_done;
}
case 7: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT603), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _inBaseType;
goto tmp3_done;
}
case 8: {
if (11 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT636), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT633;
goto tmp3_done;
}
case 9: {
if (9 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT604), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT584;
goto tmp3_done;
}
case 10: {
if (12 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT605), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT602;
goto tmp3_done;
}
case 11: {
modelica_metatype tmpMeta6;
tmpMeta6 = mmc_mk_cons(_inAttrName, mmc_mk_cons(_OMC_LIT300, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT561, tmpMeta6, _inInfo);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outType = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _outType;
}
PROTECTED_FUNCTION_STATIC modelica_fnptr omc_Inst_getBasicTypeAttrTyper(threadData_t *threadData, modelica_string _inName)
{
modelica_fnptr _outTyper;
modelica_fnptr tmp1 = 0;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp4_1;
tmp4_1 = _inName;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 5; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT300), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Inst_getRealAttributeType;
goto tmp3_done;
}
case 1: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT297), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Inst_getIntAttributeType;
goto tmp3_done;
}
case 2: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT303), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Inst_getStringAttributeType;
goto tmp3_done;
}
case 3: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT294), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp1 = boxvar_Inst_getBoolAttributeType;
goto tmp3_done;
}
case 4: {
modelica_boolean tmp6;
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT515), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp6 = omc_Config_synchronousFeaturesAllowed(threadData);
if (1 != tmp6) goto goto_2;
tmp1 = boxvar_Inst_getClockAttributeType;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outTyper = (modelica_fnptr) tmp1;
_return: OMC_LABEL_UNUSED
return _outTyper;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_getBasicTypeType(threadData_t *threadData, modelica_string _inName)
{
modelica_metatype _outType = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp4_1;
tmp4_1 = _inName;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 5; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (4 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT300), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT591;
goto tmp3_done;
}
case 1: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT297), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT637;
goto tmp3_done;
}
case 2: {
if (6 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT303), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT557;
goto tmp3_done;
}
case 3: {
if (7 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT294), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmpMeta1 = _OMC_LIT558;
goto tmp3_done;
}
case 4: {
modelica_boolean tmp6;
if (5 != MMC_STRLEN(tmp4_1) || strcmp(MMC_STRINGDATA(_OMC_LIT515), MMC_STRINGDATA(tmp4_1)) != 0) goto tmp3_end;
tmp6 = omc_Config_synchronousFeaturesAllowed(threadData);
if (1 != tmp6) goto goto_2;
tmpMeta1 = _OMC_LIT638;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outType = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _outType;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_liftNonExpType(threadData_t *threadData, modelica_metatype _inType, modelica_metatype _inInstDims, modelica_boolean _inSplitArrays)
{
modelica_metatype _outType = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_boolean tmp4_2;
tmp4_1 = _inInstDims;
tmp4_2 = _inSplitArrays;
{
modelica_metatype _dims = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
if (0 != tmp4_2) goto tmp3_end;
if (listEmpty(tmp4_1)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_1);
tmpMeta7 = MMC_CDR(tmp4_1);
_dims = tmpMeta6;
tmpMeta1 = omc_Types_liftArrayListDims(threadData, _inType, _dims);
goto tmp3_done;
}
case 1: {
tmpMeta1 = _inType;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outType = tmpMeta1;
_return: OMC_LABEL_UNUSED
return _outType;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_liftNonExpType(threadData_t *threadData, modelica_metatype _inType, modelica_metatype _inInstDims, modelica_metatype _inSplitArrays)
{
modelica_integer tmp1;
modelica_metatype _outType = NULL;
tmp1 = mmc_unbox_integer(_inSplitArrays);
_outType = omc_Inst_liftNonExpType(threadData, _inType, _inInstDims, tmp1);
return _outType;
}
DLLExport
modelica_metatype omc_Inst_instClassIn__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inClass, modelica_metatype _inVisibility, modelica_metatype _inInstDims, modelica_boolean _implicitInstantiation, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype _instSingleCref, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outTypesVarLst, modelica_metatype *out_outTypesTypeOption, modelica_metatype *out_optDerAttr, modelica_metatype *out_outEqualityConstraint, modelica_metatype *out_outGraph)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outStore = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype _outSets = NULL;
modelica_metatype _outState = NULL;
modelica_metatype _outTypesVarLst = NULL;
modelica_metatype _outTypesTypeOption = NULL;
modelica_metatype _optDerAttr = NULL;
modelica_metatype _outEqualityConstraint = NULL;
modelica_metatype _outGraph = NULL;
modelica_metatype tmpMeta[12] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;volatile modelica_metatype tmp4_5;volatile modelica_metatype tmp4_6;volatile modelica_metatype tmp4_7;volatile modelica_metatype tmp4_8;volatile modelica_metatype tmp4_9;volatile modelica_metatype tmp4_10;volatile modelica_boolean tmp4_11;volatile modelica_metatype tmp4_12;volatile modelica_metatype tmp4_13;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inIH;
tmp4_4 = _inStore;
tmp4_5 = _inMod;
tmp4_6 = _inPrefix;
tmp4_7 = _inState;
tmp4_8 = _inClass;
tmp4_9 = _inVisibility;
tmp4_10 = _inInstDims;
tmp4_11 = _implicitInstantiation;
tmp4_12 = _inCallingScope;
tmp4_13 = _inGraph;
{
modelica_metatype _bc = NULL;
modelica_metatype _env = NULL;
modelica_metatype _env_1 = NULL;
modelica_metatype _mods = NULL;
modelica_metatype _pre = NULL;
modelica_metatype _ci_state = NULL;
modelica_metatype _ci_state_1 = NULL;
modelica_metatype _c = NULL;
modelica_metatype _inst_dims = NULL;
modelica_boolean _impl;
modelica_metatype _vis = NULL;
modelica_string _n = NULL;
modelica_metatype _csets = NULL;
modelica_metatype _tys = NULL;
modelica_metatype _r = NULL;
modelica_metatype _d = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _oDA = NULL;
modelica_metatype _callscope = NULL;
modelica_metatype _graph = NULL;
modelica_metatype _ih = NULL;
modelica_metatype _dae = NULL;
modelica_metatype _info = NULL;
modelica_metatype _env_2 = NULL;
modelica_metatype _env_3 = NULL;
modelica_metatype _els = NULL;
modelica_metatype _comp = NULL;
modelica_metatype _names = NULL;
modelica_metatype _eqConstraint = NULL;
modelica_metatype _ty = NULL;
modelica_metatype _ty2 = NULL;
modelica_metatype _fq_class = NULL;
modelica_metatype _tys1 = NULL;
modelica_metatype _tys2 = NULL;
modelica_metatype _partialPrefix = NULL;
modelica_metatype _encapsulatedPrefix = NULL;
modelica_metatype _store = NULL;
modelica_boolean _b;
modelica_fnptr _typer;
modelica_metatype _comment = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 4; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,8) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
_n = tmpMeta6;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_ci_state = tmp4_7;
_inst_dims = tmp4_10;
_graph = tmp4_13;
_ty = omc_Inst_getBasicTypeType(threadData, _n);
_typer = (modelica_fnptr) omc_Inst_getBasicTypeAttrTyper(threadData, _n);
_ty = omc_Inst_liftNonExpType(threadData, _ty, _inst_dims, omc_Config_splitArrays(threadData));
_tys = omc_Inst_instBasicTypeAttributes(threadData, _cache, _env, _mods, _ty, ((modelica_fnptr) _typer), _pre);
_ty = omc_Types_setTypeVars(threadData, _ty, _tys);
_bc = omc_Inst_arrayBasictypeBaseclass(threadData, _inst_dims, _ty);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _OMC_LIT15;
tmpMeta[0+5] = _inSets;
tmpMeta[0+6] = _ci_state;
tmpMeta[0+7] = _tys;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = mmc_mk_none();
tmpMeta[0+10] = mmc_mk_none();
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,8) == 0) goto tmp3_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 6));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,10,0) == 0) goto tmp3_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 7));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta9,0,8) == 0) goto tmp3_end;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta9), 2));
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 9));
_c = tmp4_8;
_n = tmpMeta7;
_els = tmpMeta10;
_info = tmpMeta11;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_ci_state = tmp4_7;
_inst_dims = tmp4_10;
_impl = tmp4_11;
_callscope = tmp4_12;
_graph = tmp4_13;
_names = omc_SCodeUtil_componentNames(threadData, _c);
omc_Types_checkEnumDuplicateLiterals(threadData, _names, _info);
_tys = omc_Inst_instBasicTypeAttributes(threadData, _cache, _env, _mods, _OMC_LIT639, boxvar_Inst_getEnumAttributeType, _pre);
_ci_state_1 = omc_ClassInf_trans(threadData, _ci_state, _OMC_LIT397);
_comp = omc_InstUtil_addNomod(threadData, _els);
_cache = omc_InstUtil_addComponentsToEnv(threadData, _cache, _env, _ih, _mods, _pre, _ci_state_1, _comp, _impl ,&_env_1 ,&_ih);
_cache = omc_Inst_instElementList(threadData, _cache, _env_1, _ih, _store, _mods, _pre, _ci_state_1, _comp, _inst_dims, _impl, _callscope, _graph, _inSets, 1 ,&_env_2 ,&_ih ,&_store ,NULL ,&_csets ,&_ci_state_1 ,&_tys1 ,&_graph ,NULL);
_cache = omc_Inst_makeFullyQualifiedIdent(threadData, _cache, _env_2, _n, _OMC_LIT259 ,&_fq_class);
_eqConstraint = omc_InstUtil_equalityConstraint(threadData, _env_2, _els, _info);
tmpMeta12 = mmc_mk_box6(8, &DAE_Type_T__ENUMERATION__desc, mmc_mk_none(), _fq_class, _names, _tys1, _tys);
_ty2 = tmpMeta12;
_bc = omc_Inst_arrayBasictypeBaseclass(threadData, _inst_dims, _ty2);
_bc = (isSome(_bc)?_bc:mmc_mk_some(_ty2));
_ty = omc_InstUtil_mktype(threadData, _fq_class, _ci_state_1, _tys1, _bc, _eqConstraint, _c, _OMC_LIT261);
_cache = omc_InstUtil_updateEnumerationEnvironment(threadData, _cache, _env_2, _ty, _c, _ci_state_1 ,&_env_3);
_tys2 = listAppend(_tys, _tys1);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env_3;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _OMC_LIT15;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _ci_state_1;
tmpMeta[0+7] = _tys2;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = mmc_mk_none();
tmpMeta[0+10] = mmc_mk_none();
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_boolean tmp20;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,8) == 0) goto tmp3_end;
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 5));
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 6));
tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 7));
tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 8));
tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 9));
_c = tmp4_8;
_n = tmpMeta13;
_encapsulatedPrefix = tmpMeta14;
_partialPrefix = tmpMeta15;
_r = tmpMeta16;
_d = tmpMeta17;
_comment = tmpMeta18;
_info = tmpMeta19;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_5;
_pre = tmp4_6;
_ci_state = tmp4_7;
_vis = tmp4_9;
_inst_dims = tmp4_10;
_impl = tmp4_11;
_callscope = tmp4_12;
_graph = tmp4_13;
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT640);
tmp20 = omc_InstUtil_isBuiltInClass(threadData, _n);
if (0 != tmp20) goto goto_2;
{
modelica_metatype tmp23_1;
tmp23_1 = _r;
{
volatile mmc_switch_type tmp23;
int tmp24;
tmp23 = 0;
for (; tmp23 < 2; tmp23++) {
switch (MMC_SWITCH_CAST(tmp23)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp23_1,10,0) == 0) goto tmp22_end;
goto goto_21;
goto tmp22_done;
}
case 1: {
goto tmp22_done;
}
}
goto tmp22_end;
tmp22_end: ;
}
goto goto_21;
goto_21:;
goto goto_2;
goto tmp22_done;
tmp22_done:;
}
}
;
_cache = omc_Inst_instClassdef(threadData, _cache, _env, _ih, _store, _mods, _pre, _ci_state, _n, _d, _r, _vis, _partialPrefix, _encapsulatedPrefix, _inst_dims, _impl, _callscope, _graph, _inSets, _instSingleCref, _comment, _info ,&_env_1 ,&_ih ,&_store ,&_dae ,&_csets ,&_ci_state_1 ,&_tys ,&_bc ,&_oDA ,&_eqConstraint ,&_graph);
_dae = ((omc_SCodeUtil_isFunction(threadData, _c) && (!_impl))?_OMC_LIT15:_dae);
omc_ErrorExt_delCheckpoint(threadData, _OMC_LIT640);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env_1;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _dae;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _ci_state_1;
tmpMeta[0+7] = _tys;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = _eqConstraint;
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta25;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,8) == 0) goto tmp3_end;
_c = tmp4_8;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_ci_state = tmp4_7;
_impl = tmp4_11;
_graph = tmp4_13;
_b = ((omc_Flags_getConfigBool(threadData, _OMC_LIT534) && (!_impl)) && omc_SCodeUtil_isFunction(threadData, _c));
if((!_b))
{
omc_ErrorExt_delCheckpoint(threadData, _OMC_LIT640);
goto goto_2;
}
else
{
omc_ErrorExt_rollBack(threadData, _OMC_LIT640);
}
tmpMeta25 = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _OMC_LIT15;
tmpMeta[0+5] = _inSets;
tmpMeta[0+6] = _ci_state;
tmpMeta[0+7] = tmpMeta25;
tmpMeta[0+8] = mmc_mk_none();
tmpMeta[0+9] = mmc_mk_none();
tmpMeta[0+10] = mmc_mk_none();
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 4) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outStore = tmpMeta[0+3];
_outDae = tmpMeta[0+4];
_outSets = tmpMeta[0+5];
_outState = tmpMeta[0+6];
_outTypesVarLst = tmpMeta[0+7];
_outTypesTypeOption = tmpMeta[0+8];
_optDerAttr = tmpMeta[0+9];
_outEqualityConstraint = tmpMeta[0+10];
_outGraph = tmpMeta[0+11];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outStore) { *out_outStore = _outStore; }
if (out_outDae) { *out_outDae = _outDae; }
if (out_outSets) { *out_outSets = _outSets; }
if (out_outState) { *out_outState = _outState; }
if (out_outTypesVarLst) { *out_outTypesVarLst = _outTypesVarLst; }
if (out_outTypesTypeOption) { *out_outTypesTypeOption = _outTypesTypeOption; }
if (out_optDerAttr) { *out_optDerAttr = _optDerAttr; }
if (out_outEqualityConstraint) { *out_outEqualityConstraint = _outEqualityConstraint; }
if (out_outGraph) { *out_outGraph = _outGraph; }
return _outCache;
}
modelica_metatype boxptr_Inst_instClassIn__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inClass, modelica_metatype _inVisibility, modelica_metatype _inInstDims, modelica_metatype _implicitInstantiation, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype _instSingleCref, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outTypesVarLst, modelica_metatype *out_outTypesTypeOption, modelica_metatype *out_optDerAttr, modelica_metatype *out_outEqualityConstraint, modelica_metatype *out_outGraph)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_implicitInstantiation);
_outCache = omc_Inst_instClassIn__dispatch(threadData, _inCache, _inEnv, _inIH, _inStore, _inMod, _inPrefix, _inState, _inClass, _inVisibility, _inInstDims, tmp1, _inCallingScope, _inGraph, _inSets, _instSingleCref, out_outEnv, out_outIH, out_outStore, out_outDae, out_outSets, out_outState, out_outTypesVarLst, out_outTypesTypeOption, out_optDerAttr, out_outEqualityConstraint, out_outGraph);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Inst_callingScopeCacheEq(threadData_t *threadData, modelica_metatype _inCallingScope1, modelica_metatype _inCallingScope2)
{
modelica_boolean _outIsEq;
modelica_boolean tmp1 = 0;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;
tmp4_1 = _inCallingScope1;
tmp4_2 = _inCallingScope2;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 4; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,0) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,2,0) == 0) goto tmp3_end;
tmp1 = 1;
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,0) == 0) goto tmp3_end;
tmp1 = 0;
goto tmp3_done;
}
case 2: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,2,0) == 0) goto tmp3_end;
tmp1 = 0;
goto tmp3_done;
}
case 3: {
tmp1 = 1;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outIsEq = tmp1;
_return: OMC_LABEL_UNUSED
return _outIsEq;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_callingScopeCacheEq(threadData_t *threadData, modelica_metatype _inCallingScope1, modelica_metatype _inCallingScope2)
{
modelica_boolean _outIsEq;
modelica_metatype out_outIsEq;
_outIsEq = omc_Inst_callingScopeCacheEq(threadData, _inCallingScope1, _inCallingScope2);
out_outIsEq = mmc_mk_icon(_outIsEq);
return out_outIsEq;
}
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Inst_varIsModifiedInMod(threadData_t *threadData, modelica_string _inName, modelica_metatype _inSubmod)
{
modelica_boolean _b;
modelica_boolean tmp1 = 0;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _inSubmod;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
tmp1 = (stringEqual((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inSubmod), 2))), _inName));
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_b = tmp1;
_return: OMC_LABEL_UNUSED
return _b;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_varIsModifiedInMod(threadData_t *threadData, modelica_metatype _inName, modelica_metatype _inSubmod)
{
modelica_boolean _b;
modelica_metatype out_b;
_b = omc_Inst_varIsModifiedInMod(threadData, _inName, _inSubmod);
out_b = mmc_mk_icon(_b);
return out_b;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_markTypesVarsOutsideBindings(threadData_t *threadData, modelica_metatype _inType, modelica_metatype _inMod)
{
jmp_buf *old_mmc_jumper = threadData->mmc_jumper;
modelica_metatype _outType = NULL;
modelica_metatype _submods = NULL;
modelica_metatype tmpMeta7;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outType = _inType;
if((!omc_Types_isRecord(threadData, _inType)))
{
goto _return;
}
{
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp2_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
tmpMeta5 = _inMod;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta5,0,5) == 0) goto goto_1;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 4));
_submods = tmpMeta6;
goto tmp2_done;
}
case 1: {
goto _return;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
tmp2_done:
(void)tmp3;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp2_done2;
goto_1:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp3 < 2) {
goto tmp2_top;
}
MMC_THROW_INTERNAL();
tmp2_done2:;
}
}
;
if(listEmpty(_submods))
{
goto _return;
}
{
modelica_metatype tmp10_1;
tmp10_1 = _inType;
{
modelica_metatype _tvars = NULL;
volatile mmc_switch_type tmp10;
int tmp11;
tmp10 = 0;
for (; tmp10 < 1; tmp10++) {
switch (MMC_SWITCH_CAST(tmp10)) {
case 0: {
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
if (mmc__uniontype__metarecord__typedef__equal(tmp10_1,9,3) == 0) goto tmp9_end;
tmpMeta12 = MMC_REFSTRUCTLIT(mmc_nil);
_tvars = tmpMeta12;
{
modelica_metatype _var;
for (tmpMeta13 = (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inType), 3))); !listEmpty(tmpMeta13); tmpMeta13=MMC_CDR(tmpMeta13))
{
_var = MMC_CAR(tmpMeta13);
{
modelica_metatype _submod;
for (tmpMeta14 = _submods; !listEmpty(tmpMeta14); tmpMeta14=MMC_CDR(tmpMeta14))
{
_submod = MMC_CAR(tmpMeta14);
if(omc_Inst_varIsModifiedInMod(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_var), 2))), _submod))
{
tmpMeta15 = MMC_TAGPTR(mmc_alloc_words(8));
memcpy(MMC_UNTAGPTR(tmpMeta15), MMC_UNTAGPTR(_var), 8*sizeof(modelica_metatype));
((modelica_metatype*)MMC_UNTAGPTR(tmpMeta15))[6] = mmc_mk_boolean(1);
_var = tmpMeta15;
break;
}
}
}
tmpMeta17 = mmc_mk_cons(_var, _tvars);
_tvars = tmpMeta17;
}
}
_tvars = listReverse(_tvars);
tmpMeta19 = mmc_mk_box4(12, &DAE_Type_T__COMPLEX__desc, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inType), 2))), _tvars, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inType), 4))));
tmpMeta7 = tmpMeta19;
goto tmp9_done;
}
}
goto tmp9_end;
tmp9_end: ;
}
goto goto_8;
goto_8:;
MMC_THROW_INTERNAL();
goto tmp9_done;
tmp9_done:;
}
}
_outType = tmpMeta7;
_return: OMC_LABEL_UNUSED
threadData->mmc_jumper = old_mmc_jumper;
return _outType;
}
PROTECTED_FUNCTION_STATIC modelica_boolean omc_Inst_varIsModifiedInDerivedMod(threadData_t *threadData, modelica_string _inName, modelica_metatype _inSubmod)
{
modelica_boolean _b;
modelica_boolean tmp1 = 0;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_1 = _inSubmod;
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,1,3) == 0) goto tmp3_end;
tmp1 = 0;
goto tmp3_done;
}
case 1: {
tmp1 = (stringEqual((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inSubmod), 2))), _inName));
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_b = tmp1;
_return: OMC_LABEL_UNUSED
return _b;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_varIsModifiedInDerivedMod(threadData_t *threadData, modelica_metatype _inName, modelica_metatype _inSubmod)
{
modelica_boolean _b;
modelica_metatype out_b;
_b = omc_Inst_varIsModifiedInDerivedMod(threadData, _inName, _inSubmod);
out_b = mmc_mk_icon(_b);
return out_b;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_markBindingFromDerivedRecordMods(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fbind)
{
modelica_metatype _bind = NULL;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_bind = __omcQ_24in_5Fbind;
{
modelica_metatype tmp3_1;
tmp3_1 = _bind;
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
modelica_metatype tmpMeta5;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,4) == 0) goto tmp2_end;
tmpMeta5 = MMC_TAGPTR(mmc_alloc_words(6));
memcpy(MMC_UNTAGPTR(tmpMeta5), MMC_UNTAGPTR(_bind), 6*sizeof(modelica_metatype));
((modelica_metatype*)MMC_UNTAGPTR(tmpMeta5))[5] = _OMC_LIT641;
_bind = tmpMeta5;
goto tmp2_done;
}
case 1: {
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
;
_return: OMC_LABEL_UNUSED
return _bind;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_markDerivedRecordOutsideBindings(threadData_t *threadData, modelica_metatype _inType, modelica_metatype _inClass)
{
jmp_buf *old_mmc_jumper = threadData->mmc_jumper;
modelica_metatype _outType = NULL;
modelica_metatype _derMod = NULL;
modelica_metatype _submods = NULL;
modelica_metatype tmpMeta7;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
if(((!omc_SCodeUtil_isRecord(threadData, _inClass)) || (!omc_SCodeUtil_isDerivedClass(threadData, _inClass))))
{
_outType = _inType;
goto _return;
}
_derMod = omc_SCodeUtil_getDerivedMod(threadData, _inClass);
if(omc_SCodeUtil_isEmptyMod(threadData, _derMod))
{
_outType = _inType;
goto _return;
}
{
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp2_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
modelica_metatype tmpMeta5;
modelica_metatype tmpMeta6;
tmpMeta5 = _derMod;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta5,0,5) == 0) goto goto_1;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 4));
_submods = tmpMeta6;
goto tmp2_done;
}
case 1: {
omc_Error_addMessage(threadData, _OMC_LIT644, _OMC_LIT646);
goto goto_1;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
tmp2_done:
(void)tmp3;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp2_done2;
goto_1:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp3 < 2) {
goto tmp2_top;
}
MMC_THROW_INTERNAL();
tmp2_done2:;
}
}
;
{
modelica_metatype tmp10_1;
tmp10_1 = _inType;
{
modelica_metatype _tvars = NULL;
volatile mmc_switch_type tmp10;
int tmp11;
tmp10 = 0;
for (; tmp10 < 1; tmp10++) {
switch (MMC_SWITCH_CAST(tmp10)) {
case 0: {
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
if (mmc__uniontype__metarecord__typedef__equal(tmp10_1,9,3) == 0) goto tmp9_end;
tmpMeta12 = MMC_REFSTRUCTLIT(mmc_nil);
_tvars = tmpMeta12;
{
modelica_metatype _var;
for (tmpMeta13 = (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inType), 3))); !listEmpty(tmpMeta13); tmpMeta13=MMC_CDR(tmpMeta13))
{
_var = MMC_CAR(tmpMeta13);
{
modelica_metatype _submod;
for (tmpMeta14 = _submods; !listEmpty(tmpMeta14); tmpMeta14=MMC_CDR(tmpMeta14))
{
_submod = MMC_CAR(tmpMeta14);
if(omc_Inst_varIsModifiedInDerivedMod(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_var), 2))), _submod))
{
tmpMeta15 = MMC_TAGPTR(mmc_alloc_words(8));
memcpy(MMC_UNTAGPTR(tmpMeta15), MMC_UNTAGPTR(_var), 8*sizeof(modelica_metatype));
((modelica_metatype*)MMC_UNTAGPTR(tmpMeta15))[6] = mmc_mk_boolean(1);
_var = tmpMeta15;
tmpMeta16 = MMC_TAGPTR(mmc_alloc_words(8));
memcpy(MMC_UNTAGPTR(tmpMeta16), MMC_UNTAGPTR(_var), 8*sizeof(modelica_metatype));
((modelica_metatype*)MMC_UNTAGPTR(tmpMeta16))[5] = omc_Inst_markBindingFromDerivedRecordMods(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_var), 5))));
_var = tmpMeta16;
break;
}
}
}
tmpMeta18 = mmc_mk_cons(_var, _tvars);
_tvars = tmpMeta18;
}
}
_tvars = listReverse(_tvars);
tmpMeta20 = mmc_mk_box4(12, &DAE_Type_T__COMPLEX__desc, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inType), 2))), _tvars, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inType), 4))));
tmpMeta7 = tmpMeta20;
goto tmp9_done;
}
}
goto tmp9_end;
tmp9_end: ;
}
goto goto_8;
goto_8:;
MMC_THROW_INTERNAL();
goto tmp9_done;
tmp9_done:;
}
}
_outType = tmpMeta7;
_return: OMC_LABEL_UNUSED
threadData->mmc_jumper = old_mmc_jumper;
return _outType;
}
DLLExport
modelica_metatype omc_Inst_instClassIn2(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype __omcQ_24in_5Fenv, modelica_metatype __omcQ_24in_5Fih, modelica_metatype __omcQ_24in_5Fstore, modelica_metatype _mod, modelica_metatype _prefix, modelica_metatype __omcQ_24in_5Fstate, modelica_metatype _cls, modelica_metatype _visibility, modelica_metatype _instDims, modelica_boolean _implicitInst, modelica_metatype _callingScope, modelica_metatype __omcQ_24in_5Fgraph, modelica_metatype __omcQ_24in_5Fsets, modelica_metatype _instSingleCref, modelica_metatype *out_env, modelica_metatype *out_ih, modelica_metatype *out_store, modelica_metatype *out_state, modelica_metatype *out_graph, modelica_metatype *out_sets, modelica_metatype *out_dae, modelica_metatype *out_vars, modelica_metatype *out_ty, modelica_metatype *out_optDerAttr, modelica_metatype *out_equalityConstraint)
{
jmp_buf *old_mmc_jumper = threadData->mmc_jumper;
modelica_metatype _cache = NULL;
modelica_metatype _env = NULL;
modelica_metatype _ih = NULL;
modelica_metatype _store = NULL;
modelica_metatype _state = NULL;
modelica_metatype _graph = NULL;
modelica_metatype _sets = NULL;
modelica_metatype _dae = NULL;
modelica_metatype _vars = NULL;
modelica_metatype _ty = NULL;
modelica_metatype _optDerAttr = NULL;
modelica_metatype _equalityConstraint = NULL;
modelica_metatype _cache_path = NULL;
modelica_metatype _inputs = NULL;
modelica_metatype _outputs = NULL;
modelica_metatype _bbx = NULL;
modelica_metatype _bby = NULL;
modelica_metatype _m = NULL;
modelica_metatype _pre = NULL;
modelica_metatype _csets = NULL;
modelica_metatype _st = NULL;
modelica_metatype _e = NULL;
modelica_metatype _dims = NULL;
modelica_boolean _impl;
modelica_metatype _scr = NULL;
modelica_metatype _cs = NULL;
modelica_metatype _cached_graph = NULL;
modelica_metatype tmpMeta1;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
_env = __omcQ_24in_5Fenv;
_ih = __omcQ_24in_5Fih;
_store = __omcQ_24in_5Fstore;
_state = __omcQ_24in_5Fstate;
_graph = __omcQ_24in_5Fgraph;
_sets = __omcQ_24in_5Fsets;
if((omc_SCodeUtil_isPackage(threadData, _cls) && omc_SCodeUtil_isPartial(threadData, _cls)))
{
_cache = omc_Inst_partialInstClassIn(threadData, _cache, _env, _ih, _mod, _prefix, _state, _cls, _visibility, _instDims, ((modelica_integer) 0) ,&_env ,&_ih ,&_state, NULL);
_dae = _OMC_LIT15;
tmpMeta1 = MMC_REFSTRUCTLIT(mmc_nil);
_vars = tmpMeta1;
_ty = mmc_mk_none();
_optDerAttr = mmc_mk_none();
_equalityConstraint = mmc_mk_none();
goto _return;
}
_cache_path = omc_Inst_generateCachePath(threadData, _env, _cls, _prefix, _callingScope);
if(omc_Flags_isSet(threadData, _OMC_LIT26))
{
{
{
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_integer tmp22;
modelica_metatype tmpMeta23;
modelica_metatype tmpMeta24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
modelica_metatype tmpMeta29;
modelica_metatype tmpMeta30;
modelica_metatype tmpMeta31;
modelica_metatype tmpMeta32;
modelica_metatype tmpMeta33;
modelica_metatype tmpMeta34;
tmpMeta6 = omc_InstHashTable_get(threadData, _cache_path);
if (listEmpty(tmpMeta6)) goto goto_2;
tmpMeta7 = MMC_CAR(tmpMeta6);
tmpMeta8 = MMC_CDR(tmpMeta6);
if (optionNone(tmpMeta7)) goto goto_2;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta9,0,2) == 0) goto goto_2;
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta9), 2));
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta9), 3));
if (listEmpty(tmpMeta8)) goto goto_2;
tmpMeta12 = MMC_CAR(tmpMeta8);
tmpMeta13 = MMC_CDR(tmpMeta8);
if (!listEmpty(tmpMeta13)) goto goto_2;
_inputs = tmpMeta10;
_outputs = tmpMeta11;
tmpMeta14 = _inputs;
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 1));
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 2));
tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 3));
tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 4));
tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta19,2,8) == 0) goto goto_2;
tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 6));
tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 7));
tmp22 = mmc_unbox_integer(tmpMeta21);
tmpMeta23 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 8));
tmpMeta24 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta14), 9));
_m = tmpMeta15;
_pre = tmpMeta16;
_csets = tmpMeta17;
_st = tmpMeta18;
_e = tmpMeta19;
_dims = tmpMeta20;
_impl = tmp22;
_scr = tmpMeta23;
_cs = tmpMeta24;
omc_InstUtil_prefixEqualUnlessBasicType(threadData, _prefix, _pre, _cls);
if((((((((valueEq(_dims, _instDims) && ((!_impl && !_implicitInst) || (_impl && _implicitInst))) && valueEq(_m, _mod)) && valueEq(_csets, _sets)) && valueEq(_st, _state)) && valueEq(_e, _cls)) && valueEq(_scr, _instSingleCref)) && omc_Inst_callingScopeCacheEq(threadData, _cs, _callingScope)))
{
tmpMeta25 = _outputs;
tmpMeta26 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta25), 1));
tmpMeta27 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta25), 2));
tmpMeta28 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta25), 3));
tmpMeta29 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta25), 4));
tmpMeta30 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta25), 5));
tmpMeta31 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta25), 6));
tmpMeta32 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta25), 7));
tmpMeta33 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta25), 8));
tmpMeta34 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta25), 9));
_env = tmpMeta26;
_dae = tmpMeta27;
_sets = tmpMeta28;
_state = tmpMeta29;
_vars = tmpMeta30;
_ty = tmpMeta31;
_optDerAttr = tmpMeta32;
_equalityConstraint = tmpMeta33;
_cached_graph = tmpMeta34;
_graph = omc_ConnectionGraph_merge(threadData, _graph, _cached_graph);
omc_Inst_showCacheInfo(threadData, _OMC_LIT647, _cache_path);
goto _return;
}
goto tmp3_done;
}
case 1: {
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 2) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
;
}
{
{
volatile mmc_switch_type tmp37;
int tmp38;
tmp37 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp36_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp37 < 2; tmp37++) {
switch (MMC_SWITCH_CAST(tmp37)) {
case 0: {
modelica_metatype tmpMeta39;
modelica_metatype tmpMeta40;
modelica_metatype tmpMeta41;
tmpMeta39 = mmc_mk_box9(0, _mod, _prefix, _sets, _state, _cls, _instDims, mmc_mk_boolean(_implicitInst), _instSingleCref, _callingScope);
_inputs = tmpMeta39;
_cache = omc_Inst_instClassIn__dispatch(threadData, _cache, _env, _ih, _store, _mod, _prefix, _state, _cls, _visibility, _instDims, _implicitInst, _callingScope, _graph, _sets, _instSingleCref ,&_env ,&_ih ,&_store ,&_dae ,&_sets ,&_state ,&_vars ,&_ty ,&_optDerAttr ,&_equalityConstraint ,&_graph);
tmpMeta40 = mmc_mk_box9(0, _env, _dae, _sets, _state, _vars, _ty, _optDerAttr, _equalityConstraint, _graph);
_outputs = tmpMeta40;
omc_Inst_showCacheInfo(threadData, _OMC_LIT648, _cache_path);
tmpMeta41 = mmc_mk_box3(3, &InstHashTable_CachedInstItem_FUNC__instClassIn__desc, _inputs, _outputs);
omc_InstHashTable_addToInstCache(threadData, _cache_path, mmc_mk_some(tmpMeta41), mmc_mk_none());
goto tmp36_done;
}
case 1: {
modelica_boolean tmp42;
modelica_metatype tmpMeta43;
modelica_metatype tmpMeta44;
modelica_metatype tmpMeta45;
tmp42 = omc_Flags_isSet(threadData, _OMC_LIT277);
if (1 != tmp42) goto goto_35;
tmpMeta43 = stringAppend(_OMC_LIT649,omc_SCodeUtil_elementName(threadData, _cls));
tmpMeta44 = stringAppend(tmpMeta43,_OMC_LIT523);
tmpMeta45 = stringAppend(tmpMeta44,omc_FGraph_printGraphPathStr(threadData, _env));
omc_Debug_traceln(threadData, tmpMeta45);
goto goto_35;
goto tmp36_done;
}
}
goto tmp36_end;
tmp36_end: ;
}
goto goto_35;
tmp36_done:
(void)tmp37;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp36_done2;
goto_35:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp37 < 2) {
goto tmp36_top;
}
MMC_THROW_INTERNAL();
tmp36_done2:;
}
}
;
_return: OMC_LABEL_UNUSED
if (out_env) { *out_env = _env; }
if (out_ih) { *out_ih = _ih; }
if (out_store) { *out_store = _store; }
if (out_state) { *out_state = _state; }
if (out_graph) { *out_graph = _graph; }
if (out_sets) { *out_sets = _sets; }
if (out_dae) { *out_dae = _dae; }
if (out_vars) { *out_vars = _vars; }
if (out_ty) { *out_ty = _ty; }
if (out_optDerAttr) { *out_optDerAttr = _optDerAttr; }
if (out_equalityConstraint) { *out_equalityConstraint = _equalityConstraint; }
threadData->mmc_jumper = old_mmc_jumper;
return _cache;
}
modelica_metatype boxptr_Inst_instClassIn2(threadData_t *threadData, modelica_metatype __omcQ_24in_5Fcache, modelica_metatype __omcQ_24in_5Fenv, modelica_metatype __omcQ_24in_5Fih, modelica_metatype __omcQ_24in_5Fstore, modelica_metatype _mod, modelica_metatype _prefix, modelica_metatype __omcQ_24in_5Fstate, modelica_metatype _cls, modelica_metatype _visibility, modelica_metatype _instDims, modelica_metatype _implicitInst, modelica_metatype _callingScope, modelica_metatype __omcQ_24in_5Fgraph, modelica_metatype __omcQ_24in_5Fsets, modelica_metatype _instSingleCref, modelica_metatype *out_env, modelica_metatype *out_ih, modelica_metatype *out_store, modelica_metatype *out_state, modelica_metatype *out_graph, modelica_metatype *out_sets, modelica_metatype *out_dae, modelica_metatype *out_vars, modelica_metatype *out_ty, modelica_metatype *out_optDerAttr, modelica_metatype *out_equalityConstraint)
{
modelica_integer tmp1;
modelica_metatype _cache = NULL;
tmp1 = mmc_unbox_integer(_implicitInst);
_cache = omc_Inst_instClassIn2(threadData, __omcQ_24in_5Fcache, __omcQ_24in_5Fenv, __omcQ_24in_5Fih, __omcQ_24in_5Fstore, _mod, _prefix, __omcQ_24in_5Fstate, _cls, _visibility, _instDims, tmp1, _callingScope, __omcQ_24in_5Fgraph, __omcQ_24in_5Fsets, _instSingleCref, out_env, out_ih, out_store, out_state, out_graph, out_sets, out_dae, out_vars, out_ty, out_optDerAttr, out_equalityConstraint);
return _cache;
}
DLLExport
modelica_metatype omc_Inst_instClassIn(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inClass, modelica_metatype _inVisibility, modelica_metatype _inInstDims, modelica_boolean _implicitInstantiation, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype _instSingleCref, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outVars, modelica_metatype *out_outType, modelica_metatype *out_optDerAttr, modelica_metatype *out_outEqualityConstraint, modelica_metatype *out_outGraph)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outStore = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype _outSets = NULL;
modelica_metatype _outState = NULL;
modelica_metatype _outVars = NULL;
modelica_metatype _outType = NULL;
modelica_metatype _optDerAttr = NULL;
modelica_metatype _outEqualityConstraint = NULL;
modelica_metatype _outGraph = NULL;
modelica_metatype tmpMeta[12] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;
tmp4_1 = _inClass;
{
modelica_metatype _bc = NULL;
modelica_metatype _env = NULL;
modelica_metatype _ci_state = NULL;
modelica_metatype _c = NULL;
modelica_metatype _r = NULL;
modelica_string _n = NULL;
modelica_metatype _dae = NULL;
modelica_metatype _csets = NULL;
modelica_metatype _tys = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _oDA = NULL;
modelica_metatype _equalityConstraint = NULL;
modelica_metatype _graph = NULL;
modelica_metatype _ih = NULL;
modelica_string _s1 = NULL;
modelica_string _s2 = NULL;
modelica_metatype _store = NULL;
modelica_metatype _io = NULL;
modelica_metatype _info = NULL;
modelica_metatype _encflag = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 4; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_boolean tmp8;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 5));
_io = tmpMeta7;
tmp8 = (omc_AbsynUtil_isNotInnerOuter(threadData, _io) || omc_AbsynUtil_isOnlyInner(threadData, _io));
if (1 != tmp8) goto goto_2;
_cache = omc_Inst_instClassIn2(threadData, _inCache, _inEnv, _inIH, _inStore, _inMod, _inPrefix, _inState, _inClass, _inVisibility, _inInstDims, _implicitInstantiation, _inCallingScope, _inGraph, _inSets, _instSingleCref ,&_env ,&_ih ,&_store ,&_ci_state ,&_graph ,&_csets ,&_dae ,&_tys ,&_bc ,&_oDA ,&_equalityConstraint);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _dae;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _ci_state;
tmpMeta[0+7] = _tys;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = _equalityConstraint;
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_boolean tmp14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
modelica_metatype tmpMeta20;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 5));
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 4));
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 6));
_n = tmpMeta9;
_io = tmpMeta11;
_encflag = tmpMeta12;
_r = tmpMeta13;
tmp14 = (omc_AbsynUtil_isInnerOuter(threadData, _io) || omc_AbsynUtil_isOnlyOuter(threadData, _io));
if (1 != tmp14) goto goto_2;
tmpMeta15 = omc_FNode_refData(threadData, omc_FGraph_lastScopeRef(threadData, _inEnv));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta15,3,5) == 0) goto goto_2;
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta15), 6));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta16,7,1) == 0) goto goto_2;
tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta16), 2));
_n = tmpMeta17;
_env = omc_FGraph_stripLastScopeRef(threadData, _inEnv, NULL);
_env = omc_FGraph_openScope(threadData, _env, _encflag, _n, omc_FGraph_restrictionToScopeType(threadData, _r));
_ci_state = omc_ClassInf_start(threadData, _r, omc_FGraph_getGraphName(threadData, _env));
tmpMeta18 = omc_InnerOuter_lookupInnerVar(threadData, _inCache, _env, _inIH, _inPrefix, _n, _io);
tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta18), 10));
if (optionNone(tmpMeta19)) goto goto_2;
tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta19), 1));
_c = tmpMeta20;
_cache = omc_Inst_instClassIn2(threadData, _inCache, _env, _inIH, _inStore, _inMod, _inPrefix, _ci_state, _c, _inVisibility, _inInstDims, _implicitInstantiation, _inCallingScope, _inGraph, _inSets, _instSingleCref ,&_env ,&_ih ,&_store ,&_ci_state ,&_graph ,&_csets ,&_dae ,&_tys ,&_bc ,&_oDA ,&_equalityConstraint);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _dae;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _ci_state;
tmpMeta[0+7] = _tys;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = _equalityConstraint;
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
modelica_boolean tmp24;
modelica_metatype tmpMeta25;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
tmpMeta23 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 5));
_n = tmpMeta21;
_io = tmpMeta23;
tmp24 = (omc_AbsynUtil_isInnerOuter(threadData, _io) || omc_AbsynUtil_isOnlyOuter(threadData, _io));
if (1 != tmp24) goto goto_2;
_n = omc_FGraph_getInstanceOriginalName(threadData, _inEnv, _n);
tmpMeta25 = omc_InnerOuter_lookupInnerVar(threadData, _inCache, _inEnv, _inIH, _inPrefix, _n, _io);
tmpMeta26 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta25), 10));
if (optionNone(tmpMeta26)) goto goto_2;
tmpMeta27 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta26), 1));
_c = tmpMeta27;
_cache = omc_Inst_instClassIn2(threadData, _inCache, _inEnv, _inIH, _inStore, _inMod, _inPrefix, _inState, _c, _inVisibility, _inInstDims, _implicitInstantiation, _inCallingScope, _inGraph, _inSets, _instSingleCref ,&_env ,&_ih ,&_store ,&_ci_state ,&_graph ,&_csets ,&_dae ,&_tys ,&_bc ,&_oDA ,&_equalityConstraint);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _dae;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _ci_state;
tmpMeta[0+7] = _tys;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = _equalityConstraint;
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta28;
modelica_metatype tmpMeta29;
modelica_metatype tmpMeta30;
modelica_metatype tmpMeta31;
modelica_boolean tmp32;
modelica_metatype tmpMeta33;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
tmpMeta28 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta29 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
tmpMeta30 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta29), 5));
tmpMeta31 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 9));
_n = tmpMeta28;
_io = tmpMeta30;
_info = tmpMeta31;
tmp32 = (omc_AbsynUtil_isInnerOuter(threadData, _io) || omc_AbsynUtil_isOnlyOuter(threadData, _io));
if (1 != tmp32) goto goto_2;
if((!omc_Config_getGraphicsExpMode(threadData)))
{
_s1 = _n;
_s2 = omc_AbsynUtil_innerOuterStr(threadData, _io);
tmpMeta33 = mmc_mk_cons(_s1, mmc_mk_cons(_s2, mmc_mk_cons(_OMC_LIT11, MMC_REFSTRUCTLIT(mmc_nil))));
omc_Error_addSourceMessage(threadData, _OMC_LIT653, tmpMeta33, _info);
}
_cache = omc_Inst_instClassIn2(threadData, _inCache, _inEnv, _inIH, _inStore, _inMod, _inPrefix, _inState, _inClass, _inVisibility, _inInstDims, _implicitInstantiation, _inCallingScope, _inGraph, _inSets, _instSingleCref ,&_env ,&_ih ,&_store ,&_ci_state ,&_graph ,&_csets ,&_dae ,&_tys ,&_bc ,&_oDA ,&_equalityConstraint);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _dae;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _ci_state;
tmpMeta[0+7] = _tys;
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = _equalityConstraint;
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 4) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outStore = tmpMeta[0+3];
_outDae = tmpMeta[0+4];
_outSets = tmpMeta[0+5];
_outState = tmpMeta[0+6];
_outVars = tmpMeta[0+7];
_outType = tmpMeta[0+8];
_optDerAttr = tmpMeta[0+9];
_outEqualityConstraint = tmpMeta[0+10];
_outGraph = tmpMeta[0+11];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outStore) { *out_outStore = _outStore; }
if (out_outDae) { *out_outDae = _outDae; }
if (out_outSets) { *out_outSets = _outSets; }
if (out_outState) { *out_outState = _outState; }
if (out_outVars) { *out_outVars = _outVars; }
if (out_outType) { *out_outType = _outType; }
if (out_optDerAttr) { *out_optDerAttr = _optDerAttr; }
if (out_outEqualityConstraint) { *out_outEqualityConstraint = _outEqualityConstraint; }
if (out_outGraph) { *out_outGraph = _outGraph; }
return _outCache;
}
modelica_metatype boxptr_Inst_instClassIn(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inState, modelica_metatype _inClass, modelica_metatype _inVisibility, modelica_metatype _inInstDims, modelica_metatype _implicitInstantiation, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype _instSingleCref, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outState, modelica_metatype *out_outVars, modelica_metatype *out_outType, modelica_metatype *out_optDerAttr, modelica_metatype *out_outEqualityConstraint, modelica_metatype *out_outGraph)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_implicitInstantiation);
_outCache = omc_Inst_instClassIn(threadData, _inCache, _inEnv, _inIH, _inStore, _inMod, _inPrefix, _inState, _inClass, _inVisibility, _inInstDims, tmp1, _inCallingScope, _inGraph, _inSets, _instSingleCref, out_outEnv, out_outIH, out_outStore, out_outDae, out_outSets, out_outState, out_outVars, out_outType, out_optDerAttr, out_outEqualityConstraint, out_outGraph);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instClassBasictype(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inClass, modelica_metatype _inInstDims, modelica_boolean _inImplicit, modelica_metatype _inCallingScope, modelica_metatype _inSets, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outType, modelica_metatype *out_outTypeVars, modelica_metatype *out_outState)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outStore = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype _outSets = NULL;
modelica_metatype _outType = NULL;
modelica_metatype _outTypeVars = NULL;
modelica_metatype _outState = NULL;
modelica_metatype tmpMeta[9] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_metatype tmp4_4;modelica_metatype tmp4_5;modelica_metatype tmp4_6;modelica_metatype tmp4_7;modelica_metatype tmp4_8;modelica_boolean tmp4_9;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inIH;
tmp4_4 = _inStore;
tmp4_5 = _inMod;
tmp4_6 = _inPrefix;
tmp4_7 = _inClass;
tmp4_8 = _inInstDims;
tmp4_9 = _inImplicit;
{
modelica_metatype _env_1 = NULL;
modelica_metatype _env_3 = NULL;
modelica_metatype _env = NULL;
modelica_metatype _ci_state = NULL;
modelica_metatype _ci_state_1 = NULL;
modelica_metatype _c_1 = NULL;
modelica_metatype _c = NULL;
modelica_metatype _dae1 = NULL;
modelica_metatype _dae1_1 = NULL;
modelica_metatype _dae = NULL;
modelica_metatype _csets = NULL;
modelica_metatype _tys = NULL;
modelica_metatype _bc_ty = NULL;
modelica_metatype _fq_class = NULL;
modelica_metatype _encflag = NULL;
modelica_boolean _impl;
modelica_metatype _ty = NULL;
modelica_metatype _mod = NULL;
modelica_metatype _pre = NULL;
modelica_string _n = NULL;
modelica_metatype _r = NULL;
modelica_metatype _inst_dims = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _ih = NULL;
modelica_metatype _store = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 1; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_7,2,8) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 2));
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 4));
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 6));
_c = tmp4_7;
_n = tmpMeta6;
_encflag = tmpMeta7;
_r = tmpMeta8;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mod = tmp4_5;
_pre = tmp4_6;
_inst_dims = tmp4_8;
_impl = tmp4_9;
_env_1 = omc_FGraph_openScope(threadData, _env, _encflag, _n, omc_FGraph_restrictionToScopeType(threadData, _r));
_ci_state = omc_ClassInf_start(threadData, _r, omc_FGraph_getGraphName(threadData, _env_1));
_c_1 = omc_SCodeUtil_classSetPartial(threadData, _c, _OMC_LIT375);
_cache = omc_Inst_instClassIn(threadData, _cache, _env_1, _ih, _store, _mod, _pre, _ci_state, _c_1, _OMC_LIT368, _inst_dims, _impl, _OMC_LIT27, _OMC_LIT10, _inSets, mmc_mk_none() ,&_env_3 ,&_ih ,&_store ,&_dae1 ,&_csets ,&_ci_state_1 ,&_tys ,&_bc_ty ,NULL ,NULL ,NULL);
_cache = omc_Inst_makeFullyQualifiedIdent(threadData, _cache, _env_3, _n, _OMC_LIT259 ,&_fq_class);
_dae1_1 = omc_DAEUtil_addComponentType(threadData, _dae1, _fq_class);
_dae = _dae1_1;
_ty = omc_InstUtil_mktypeWithArrays(threadData, _fq_class, _ci_state_1, _tys, _bc_ty, _c, omc_InstUtil_extractComment(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_dae), 2)))));
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env_3;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _dae;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _ty;
tmpMeta[0+7] = _tys;
tmpMeta[0+8] = _ci_state_1;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outStore = tmpMeta[0+3];
_outDae = tmpMeta[0+4];
_outSets = tmpMeta[0+5];
_outType = tmpMeta[0+6];
_outTypeVars = tmpMeta[0+7];
_outState = tmpMeta[0+8];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outStore) { *out_outStore = _outStore; }
if (out_outDae) { *out_outDae = _outDae; }
if (out_outSets) { *out_outSets = _outSets; }
if (out_outType) { *out_outType = _outType; }
if (out_outTypeVars) { *out_outTypeVars = _outTypeVars; }
if (out_outState) { *out_outState = _outState; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instClassBasictype(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inClass, modelica_metatype _inInstDims, modelica_metatype _inImplicit, modelica_metatype _inCallingScope, modelica_metatype _inSets, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outType, modelica_metatype *out_outTypeVars, modelica_metatype *out_outState)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_inImplicit);
_outCache = omc_Inst_instClassBasictype(threadData, _inCache, _inEnv, _inIH, _inStore, _inMod, _inPrefix, _inClass, _inInstDims, tmp1, _inCallingScope, _inSets, out_outEnv, out_outIH, out_outStore, out_outDae, out_outSets, out_outType, out_outTypeVars, out_outState);
return _outCache;
}
DLLExport
modelica_metatype omc_Inst_instClass(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inClass, modelica_metatype _inInstDims, modelica_boolean _inImplicit, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outType, modelica_metatype *out_outState, modelica_metatype *out_optDerAttr, modelica_metatype *out_outGraph)
{
modelica_metatype _cache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outStore = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype _outSets = NULL;
modelica_metatype _outType = NULL;
modelica_metatype _outState = NULL;
modelica_metatype _optDerAttr = NULL;
modelica_metatype _outGraph = NULL;
modelica_metatype tmpMeta[10] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;volatile modelica_metatype tmp4_5;volatile modelica_metatype tmp4_6;volatile modelica_metatype tmp4_7;volatile modelica_metatype tmp4_8;volatile modelica_boolean tmp4_9;volatile modelica_metatype tmp4_10;volatile modelica_metatype tmp4_11;
tmp4_1 = _inCache;
tmp4_2 = _inEnv;
tmp4_3 = _inIH;
tmp4_4 = _inStore;
tmp4_5 = _inMod;
tmp4_6 = _inPrefix;
tmp4_7 = _inClass;
tmp4_8 = _inInstDims;
tmp4_9 = _inImplicit;
tmp4_10 = _inCallingScope;
tmp4_11 = _inGraph;
{
modelica_metatype _env = NULL;
modelica_metatype _env_1 = NULL;
modelica_metatype _env_3 = NULL;
modelica_metatype _mod = NULL;
modelica_metatype _pre = NULL;
modelica_metatype _csets = NULL;
modelica_string _n = NULL;
modelica_string _scopeName = NULL;
modelica_string _strDepth = NULL;
modelica_boolean _impl;
modelica_boolean _callscope_1;
modelica_boolean _isFn;
modelica_boolean _notIsPartial;
modelica_boolean _isPartialFn;
modelica_boolean _recursionDepthReached;
modelica_metatype _partialPrefix = NULL;
modelica_metatype _encflag = NULL;
modelica_metatype _ci_state = NULL;
modelica_metatype _ci_state_1 = NULL;
modelica_metatype _dae1 = NULL;
modelica_metatype _dae1_1 = NULL;
modelica_metatype _dae = NULL;
modelica_metatype _tys = NULL;
modelica_metatype _bc_ty = NULL;
modelica_metatype _fq_class = NULL;
modelica_metatype _ty = NULL;
modelica_metatype _c = NULL;
modelica_metatype _r = NULL;
modelica_metatype _inst_dims = NULL;
modelica_metatype _callscope = NULL;
modelica_metatype _oDA = NULL;
modelica_metatype _graph = NULL;
modelica_metatype _ih = NULL;
modelica_metatype _equalityConstraint = NULL;
modelica_metatype _info = NULL;
modelica_metatype _store = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 4; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_boolean tmp10;
modelica_boolean tmp11;
modelica_metatype tmpMeta12;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_7,2,8) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 2));
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,0,0) == 0) goto tmp3_end;
tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 6));
tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 9));
_n = tmpMeta6;
_r = tmpMeta8;
_info = tmpMeta9;
_cache = tmp4_1;
_store = tmp4_4;
tmp10 = omc_Flags_getConfigBool(threadData, _OMC_LIT534);
if (1 != tmp10) goto goto_2;
tmp11 = omc_SCodeUtil_isFunctionRestriction(threadData, _r);
if (0 != tmp11) goto goto_2;
_c = omc_SCodeUtil_setClassPartialPrefix(threadData, _OMC_LIT375, _inClass);
if((!omc_Config_getGraphicsExpMode(threadData)))
{
tmpMeta12 = mmc_mk_cons(_n, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT656, tmpMeta12, _info);
}
tmpMeta[0+0] = omc_Inst_instClass(threadData, _inCache, _inEnv, _inIH, _store, _inMod, _inPrefix, _c, _inInstDims, _inImplicit, _inCallingScope, _inGraph, _inSets, &tmpMeta[0+1], &tmpMeta[0+2], &tmpMeta[0+3], &tmpMeta[0+4], &tmpMeta[0+5], &tmpMeta[0+6], &tmpMeta[0+7], &tmpMeta[0+8], &tmpMeta[0+9]);
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_boolean tmp19;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_7,2,8) == 0) goto tmp3_end;
tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 2));
tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 4));
tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 5));
tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 6));
tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 9));
_c = tmp4_7;
_n = tmpMeta13;
_encflag = tmpMeta14;
_partialPrefix = tmpMeta15;
_r = tmpMeta16;
_info = tmpMeta17;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mod = tmp4_5;
_pre = tmp4_6;
_inst_dims = tmp4_8;
_impl = tmp4_9;
_callscope = tmp4_10;
_graph = tmp4_11;
_recursionDepthReached = (listLength(omc_FGraph_currentScope(threadData, _env)) < ((modelica_integer) 256));
if((!_recursionDepthReached))
{
_scopeName = omc_FGraph_printGraphPathStr(threadData, _env);
_strDepth = _OMC_LIT520;
tmpMeta18 = mmc_mk_cons(_strDepth, mmc_mk_cons(_scopeName, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT519, tmpMeta18, _info);
goto goto_2;
}
_isFn = omc_SCodeUtil_isFunctionRestriction(threadData, _r);
_notIsPartial = (!omc_SCodeUtil_partialBool(threadData, _partialPrefix));
_isPartialFn = (_isFn && omc_SCodeUtil_partialBool(threadData, _partialPrefix));
tmp19 = (_notIsPartial || _isPartialFn);
if (1 != tmp19) goto goto_2;
_env_1 = omc_FGraph_openScope(threadData, _env, _encflag, _n, omc_FGraph_restrictionToScopeType(threadData, _r));
_ci_state = omc_ClassInf_start(threadData, _r, omc_FGraph_getGraphName(threadData, _env_1));
_csets = omc_ConnectUtil_newSet(threadData, _pre, _inSets);
_cache = omc_Inst_instClassIn(threadData, _cache, _env_1, _ih, _store, _mod, _pre, _ci_state, _c, _OMC_LIT368, _inst_dims, _impl, _callscope, _graph, _csets, mmc_mk_none() ,&_env_3 ,&_ih ,&_store ,&_dae1 ,&_csets ,&_ci_state_1 ,&_tys ,&_bc_ty ,&_oDA ,&_equalityConstraint ,&_graph);
_csets = omc_ConnectUtil_addSet(threadData, _inSets, _csets);
_cache = omc_Inst_makeFullyQualifiedIdent(threadData, _cache, _env, _n, _OMC_LIT259 ,&_fq_class);
_callscope_1 = omc_InstUtil_isTopCall(threadData, _callscope);
_dae1_1 = omc_DAEUtil_addComponentType(threadData, _dae1, _fq_class);
_csets = omc_InnerOuter_retrieveOuterConnections(threadData, _cache, _env_3, _ih, _pre, _csets, _callscope_1, _graph ,NULL ,&_graph);
_dae = omc_ConnectUtil_equations(threadData, _callscope_1, _csets, _dae1_1, _graph, omc_AbsynUtil_pathString(threadData, omc_AbsynUtil_makeNotFullyQualified(threadData, _fq_class), _OMC_LIT5, 1, 0));
_ty = omc_InstUtil_mktype(threadData, _fq_class, _ci_state_1, _tys, _bc_ty, _equalityConstraint, _c, omc_InstUtil_extractComment(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_dae), 2)))));
_dae = omc_InstUtil_updateDeducedUnits(threadData, _callscope_1, _store, _dae);
_ty = omc_Inst_markDerivedRecordOutsideBindings(threadData, _ty, _c);
_ty = omc_Inst_markTypesVarsOutsideBindings(threadData, _ty, _mod);
_ty = omc_InstUtil_fixInstClassType(threadData, _ty, _isPartialFn);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env_3;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _dae;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _ty;
tmpMeta[0+7] = _ci_state_1;
tmpMeta[0+8] = _oDA;
tmpMeta[0+9] = _graph;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta20;
modelica_metatype tmpMeta21;
modelica_metatype tmpMeta22;
modelica_metatype tmpMeta23;
if (0 != tmp4_9) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_7,2,8) == 0) goto tmp3_end;
tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 2));
tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta21,0,0) == 0) goto tmp3_end;
tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 9));
_n = tmpMeta20;
_info = tmpMeta22;
_cache = tmp4_1;
if((!omc_Config_getGraphicsExpMode(threadData)))
{
tmpMeta23 = mmc_mk_cons(_n, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT659, tmpMeta23, _info);
}
goto goto_2;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta24;
modelica_boolean tmp25;
modelica_metatype tmpMeta26;
modelica_metatype tmpMeta27;
modelica_metatype tmpMeta28;
modelica_metatype tmpMeta29;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_7,2,8) == 0) goto tmp3_end;
tmpMeta24 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 2));
_n = tmpMeta24;
_env = tmp4_2;
tmp25 = omc_Flags_isSet(threadData, _OMC_LIT277);
if (1 != tmp25) goto goto_2;
tmpMeta26 = stringAppend(_OMC_LIT660,_n);
tmpMeta27 = stringAppend(tmpMeta26,_OMC_LIT661);
tmpMeta28 = stringAppend(tmpMeta27,omc_FGraph_printGraphPathStr(threadData, _env));
tmpMeta29 = stringAppend(tmpMeta28,_OMC_LIT662);
omc_Debug_trace(threadData, tmpMeta29);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 4) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_cache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outStore = tmpMeta[0+3];
_outDae = tmpMeta[0+4];
_outSets = tmpMeta[0+5];
_outType = tmpMeta[0+6];
_outState = tmpMeta[0+7];
_optDerAttr = tmpMeta[0+8];
_outGraph = tmpMeta[0+9];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outStore) { *out_outStore = _outStore; }
if (out_outDae) { *out_outDae = _outDae; }
if (out_outSets) { *out_outSets = _outSets; }
if (out_outType) { *out_outType = _outType; }
if (out_outState) { *out_outState = _outState; }
if (out_optDerAttr) { *out_optDerAttr = _optDerAttr; }
if (out_outGraph) { *out_outGraph = _outGraph; }
return _cache;
}
modelica_metatype boxptr_Inst_instClass(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inStore, modelica_metatype _inMod, modelica_metatype _inPrefix, modelica_metatype _inClass, modelica_metatype _inInstDims, modelica_metatype _inImplicit, modelica_metatype _inCallingScope, modelica_metatype _inGraph, modelica_metatype _inSets, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outStore, modelica_metatype *out_outDae, modelica_metatype *out_outSets, modelica_metatype *out_outType, modelica_metatype *out_outState, modelica_metatype *out_optDerAttr, modelica_metatype *out_outGraph)
{
modelica_integer tmp1;
modelica_metatype _cache = NULL;
tmp1 = mmc_unbox_integer(_inImplicit);
_cache = omc_Inst_instClass(threadData, _inCache, _inEnv, _inIH, _inStore, _inMod, _inPrefix, _inClass, _inInstDims, tmp1, _inCallingScope, _inGraph, _inSets, out_outEnv, out_outIH, out_outStore, out_outDae, out_outSets, out_outType, out_outState, out_optDerAttr, out_outGraph);
return _cache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instClassInProgram(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inProgram, modelica_metatype _inPath, modelica_metatype _inSource, modelica_boolean _relaxedFrontEnd, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDae)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outDae = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;
tmp4_1 = _inProgram;
tmp4_2 = _inPath;
{
modelica_string _name = NULL;
modelica_metatype _cls = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _env = NULL;
modelica_metatype _ih = NULL;
modelica_metatype _dae = NULL;
modelica_metatype _elts = NULL;
modelica_metatype _cmt = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 4; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (!listEmpty(tmp4_1)) goto tmp3_end;
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = _inEnv;
tmpMeta[0+2] = _inIH;
tmpMeta[0+3] = _OMC_LIT15;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
if (0 != MMC_STRLEN(tmpMeta6) || strcmp(MMC_STRINGDATA(_OMC_LIT11), MMC_STRINGDATA(tmpMeta6)) != 0) goto tmp3_end;
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = _inEnv;
tmpMeta[0+2] = _inIH;
tmpMeta[0+3] = _OMC_LIT15;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
_name = tmpMeta7;
_cls = omc_InstUtil_lookupTopLevelClass(threadData, _name, _inProgram, 1);
tmpMeta8 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClass(threadData, _inCache, _inEnv, _inIH, omc_UnitAbsynBuilder_emptyInstStore(threadData), _OMC_LIT7, omc_Inst_makeTopComponentPrefix(threadData, _inEnv, _name), _cls, tmpMeta8, 0, _OMC_LIT9, _OMC_LIT10, _OMC_LIT14 ,&_env ,&_ih ,NULL ,&_dae ,NULL ,NULL ,NULL ,NULL ,NULL);
_dae = omc_InstUtil_reEvaluateInitialIfEqns(threadData, _cache, _env, _dae, 1);
_elts = omc_DAEUtil_daeElements(threadData, _dae);
_cmt = omc_SCodeUtil_getElementComment(threadData, _cls);
tmpMeta10 = mmc_mk_box5(21, &DAE_Element_COMP__desc, _name, _elts, _inSource, _cmt);
tmpMeta9 = mmc_mk_cons(tmpMeta10, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta11 = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta9);
_dae = tmpMeta11;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _dae;
goto tmp3_done;
}
case 3: {
modelica_boolean tmp12;
tmp12 = omc_Flags_isSet(threadData, _OMC_LIT277);
if (1 != tmp12) goto goto_2;
omc_Debug_trace(threadData, _OMC_LIT663);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 4) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outDae = tmpMeta[0+3];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outDae) { *out_outDae = _outDae; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instClassInProgram(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inEnv, modelica_metatype _inIH, modelica_metatype _inProgram, modelica_metatype _inPath, modelica_metatype _inSource, modelica_metatype _relaxedFrontEnd, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDae)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_relaxedFrontEnd);
_outCache = omc_Inst_instClassInProgram(threadData, _inCache, _inEnv, _inIH, _inProgram, _inPath, _inSource, tmp1, out_outEnv, out_outIH, out_outDae);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_makeTopComponentPrefix(threadData_t *threadData, modelica_metatype _inGraph, modelica_string _inName)
{
modelica_metatype _outPrefix = NULL;
modelica_metatype _p = NULL;
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outPrefix = _OMC_LIT8;
_return: OMC_LABEL_UNUSED
return _outPrefix;
}
DLLExport
modelica_metatype omc_Inst_instantiatePartialClass(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inIH, modelica_metatype _inProgram, modelica_metatype _inPath, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDAElist)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outDAElist = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;
tmp4_1 = _inCache;
tmp4_2 = _inIH;
tmp4_3 = _inProgram;
tmp4_4 = _inPath;
{
modelica_metatype _path = NULL;
modelica_metatype _env = NULL;
modelica_metatype _env_1 = NULL;
modelica_metatype _env_2 = NULL;
modelica_metatype _dae = NULL;
modelica_metatype _cdecls = NULL;
modelica_string _n = NULL;
modelica_string _pathstr = NULL;
modelica_string _cname_str = NULL;
modelica_metatype _cdef = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _ih = NULL;
modelica_metatype _source = NULL;
modelica_metatype _daeElts = NULL;
modelica_metatype _cmt = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 4; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
if (!listEmpty(tmp4_3)) goto tmp3_end;
tmp4 += 2;
tmpMeta6 = MMC_REFSTRUCTLIT(mmc_nil);
omc_Error_addMessage(threadData, _OMC_LIT266, tmpMeta6);
goto goto_2;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta7 = MMC_CAR(tmp4_3);
tmpMeta8 = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,1,1) == 0) goto tmp3_end;
_cdecls = tmp4_3;
_path = tmp4_4;
_cache = tmp4_1;
_ih = tmp4_2;
tmp4 += 1;
_cache = omc_Builtin_initialGraph(threadData, _cache ,&_env);
_env_1 = omc_FGraphBuildEnv_mkProgramGraph(threadData, _cdecls, _OMC_LIT267, _env);
_cdecls = omc_List_map1(threadData, _cdecls, boxvar_SCodeUtil_classSetPartial, _OMC_LIT375);
_source = omc_ElementSource_addElementSourcePartOfOpt(threadData, _OMC_LIT665, omc_FGraph_getScopePath(threadData, _env));
tmpMeta[0+0] = omc_Inst_instClassInProgram(threadData, _cache, _env_1, _ih, _cdecls, _path, _source, 1, &tmpMeta[0+1], &tmpMeta[0+2], &tmpMeta[0+3]);
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta9 = MMC_CAR(tmp4_3);
tmpMeta10 = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,0,2) == 0) goto tmp3_end;
_cdecls = tmp4_3;
_path = tmp4_4;
_cache = tmp4_1;
_ih = tmp4_2;
_cache = omc_Builtin_initialGraph(threadData, _cache ,&_env);
_env_1 = omc_FGraphBuildEnv_mkProgramGraph(threadData, _cdecls, _OMC_LIT267, _env);
tmpMeta14 = omc_Lookup_lookupClass(threadData, _cache, _env_1, _path, _OMC_LIT270, &tmpMeta11, &tmpMeta13);
_cache = tmpMeta14;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta11,2,8) == 0) goto goto_2;
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 2));
_cdef = tmpMeta11;
_n = tmpMeta12;
_env_2 = tmpMeta13;
_cdef = omc_SCodeUtil_classSetPartial(threadData, _cdef, _OMC_LIT375);
tmpMeta15 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClass(threadData, _cache, _env_2, _ih, omc_UnitAbsynBuilder_emptyInstStore(threadData), _OMC_LIT7, omc_Inst_makeTopComponentPrefix(threadData, _env_2, _n), _cdef, tmpMeta15, 0, _OMC_LIT9, _OMC_LIT10, _OMC_LIT14 ,&_env_2 ,&_ih ,NULL ,&_dae ,NULL ,NULL ,NULL ,NULL ,NULL);
_pathstr = omc_AbsynUtil_pathString(threadData, _path, _OMC_LIT5, 1, 0);
_source = omc_ElementSource_addElementSourcePartOfOpt(threadData, _OMC_LIT665, omc_FGraph_getScopePath(threadData, _env));
_daeElts = omc_DAEUtil_daeElements(threadData, _dae);
_cmt = omc_SCodeUtil_getElementComment(threadData, _cdef);
tmpMeta17 = mmc_mk_box5(21, &DAE_Element_COMP__desc, _pathstr, _daeElts, _source, _cmt);
tmpMeta16 = mmc_mk_cons(tmpMeta17, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta18 = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta16);
_dae = tmpMeta18;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env_2;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _dae;
goto tmp3_done;
}
case 3: {
modelica_metatype tmpMeta19;
_path = tmp4_4;
if (!(!omc_Config_getGraphicsExpMode(threadData))) goto tmp3_end;
_cname_str = omc_AbsynUtil_pathString(threadData, _path, _OMC_LIT5, 1, 0);
tmpMeta19 = mmc_mk_cons(_cname_str, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addMessage(threadData, _OMC_LIT273, tmpMeta19);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 4) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outDAElist = tmpMeta[0+3];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outDAElist) { *out_outDAElist = _outDAElist; }
return _outCache;
}
DLLExport
modelica_metatype omc_Inst_instantiateClass(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inIH, modelica_metatype _inProgram, modelica_metatype _inPath, modelica_boolean _doSCodeDep, modelica_boolean _relaxedFrontEnd, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDAElist)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outDAElist = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;volatile modelica_metatype tmp4_3;volatile modelica_metatype tmp4_4;
tmp4_1 = _inCache;
tmp4_2 = _inIH;
tmp4_3 = _inProgram;
tmp4_4 = _inPath;
{
modelica_metatype _path = NULL;
modelica_metatype _cdecls = NULL;
modelica_string _cname_str = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _ih = NULL;
modelica_boolean _stackOverflow;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp3_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp4 < 3; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
if (!listEmpty(tmp4_3)) goto tmp3_end;
tmp4 += 2;
tmpMeta6 = MMC_REFSTRUCTLIT(mmc_nil);
omc_Error_addMessage(threadData, _OMC_LIT266, tmpMeta6);
goto goto_2;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta7 = MMC_CAR(tmp4_3);
tmpMeta8 = MMC_CDR(tmp4_3);
_cdecls = tmp4_3;
_cache = tmp4_1;
_ih = tmp4_2;
_path = tmp4_4;
_outCache = omc_Inst_instantiateClass__dispatch(threadData, _cache, _ih, _cdecls, _path, _doSCodeDep, _relaxedFrontEnd ,&_outEnv ,&_outIH ,&_outDAElist);
_outDAElist = omc_FUnitCheck_checkUnits(threadData, _outDAElist, omc_FCore_getFunctionTree(threadData, _outCache));
tmpMeta[0+0] = _outCache;
tmpMeta[0+1] = _outEnv;
tmpMeta[0+2] = _outIH;
tmpMeta[0+3] = _outDAElist;
goto tmp3_done;
}
case 2: {
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta9 = MMC_CAR(tmp4_3);
tmpMeta10 = MMC_CDR(tmp4_3);
_path = tmp4_4;
_stackOverflow = 0;
tmpMeta11 = stringAppend(omc_AbsynUtil_pathString(threadData, _path, _OMC_LIT5, 1, 0),(_stackOverflow?_OMC_LIT666:_OMC_LIT11));
_cname_str = tmpMeta11;
if((!omc_Config_getGraphicsExpMode(threadData)))
{
tmpMeta12 = mmc_mk_cons(_cname_str, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addMessage(threadData, _OMC_LIT273, tmpMeta12);
}
omc_InstHashTable_release(threadData);
goto goto_2;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
tmp3_done:
(void)tmp4;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp3_done2;
goto_2:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp4 < 3) {
goto tmp3_top;
}
MMC_THROW_INTERNAL();
tmp3_done2:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outDAElist = tmpMeta[0+3];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outDAElist) { *out_outDAElist = _outDAElist; }
return _outCache;
}
modelica_metatype boxptr_Inst_instantiateClass(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inIH, modelica_metatype _inProgram, modelica_metatype _inPath, modelica_metatype _doSCodeDep, modelica_metatype _relaxedFrontEnd, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDAElist)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_doSCodeDep);
tmp2 = mmc_unbox_integer(_relaxedFrontEnd);
_outCache = omc_Inst_instantiateClass(threadData, _inCache, _inIH, _inProgram, _inPath, tmp1, tmp2, out_outEnv, out_outIH, out_outDAElist);
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype omc_Inst_instantiateClass__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inIH, modelica_metatype _inProgram, modelica_metatype _inPath, modelica_boolean _doSCodeDep, modelica_boolean _relaxedFrontEnd, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDAElist)
{
modelica_metatype _outCache = NULL;
modelica_metatype _outEnv = NULL;
modelica_metatype _outIH = NULL;
modelica_metatype _outDAElist = NULL;
modelica_metatype tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;modelica_metatype tmp4_2;modelica_metatype tmp4_3;modelica_metatype tmp4_4;
tmp4_1 = _inCache;
tmp4_2 = _inIH;
tmp4_3 = _inProgram;
tmp4_4 = _inPath;
{
modelica_metatype _path = NULL;
modelica_metatype _env = NULL;
modelica_metatype _dae = NULL;
modelica_metatype _dae2 = NULL;
modelica_metatype _cdecls = NULL;
modelica_string _n = NULL;
modelica_string _pathstr = NULL;
modelica_metatype _cdef = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _ih = NULL;
modelica_metatype _source = NULL;
modelica_metatype _daeElts = NULL;
modelica_metatype _cmt = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
modelica_metatype tmpMeta6;
modelica_metatype tmpMeta7;
modelica_metatype tmpMeta8;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta6 = MMC_CAR(tmp4_3);
tmpMeta7 = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,1,1) == 0) goto tmp3_end;
_cdecls = tmp4_3;
_path = tmp4_4;
_cache = tmp4_1;
_ih = tmp4_2;
_cache = omc_FCore_setCacheClassName(threadData, _cache, _path);
if(_doSCodeDep)
{
_cdecls = omc_InstUtil_scodeFlatten(threadData, _cdecls, _inPath);
omc_ExecStat_execStat(threadData, _OMC_LIT667);
}
_cache = omc_Builtin_initialGraph(threadData, _cache ,&_env);
_env = omc_FGraphBuildEnv_mkProgramGraph(threadData, _cdecls, _OMC_LIT267, _env);
_source = omc_ElementSource_addElementSourcePartOfOpt(threadData, _OMC_LIT665, omc_FGraph_getScopePath(threadData, _env));
if(omc_Flags_isSet(threadData, _OMC_LIT673))
{
tmpMeta8 = stringAppend(omc_GCExt_profStatsStr(threadData, omc_GCExt_getProfStats(threadData), _OMC_LIT668, _OMC_LIT669),_OMC_LIT17);
fputs(MMC_STRINGDATA(tmpMeta8),stdout);
}
omc_ExecStat_execStat(threadData, _OMC_LIT674);
_cache = omc_Inst_instClassInProgram(threadData, _cache, _env, _ih, _cdecls, _path, _source, _relaxedFrontEnd ,&_env ,&_ih ,&_dae2);
omc_InstHashTable_release(threadData);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _dae2;
goto tmp3_done;
}
case 1: {
modelica_metatype tmpMeta9;
modelica_metatype tmpMeta10;
modelica_metatype tmpMeta11;
modelica_metatype tmpMeta12;
modelica_metatype tmpMeta13;
modelica_metatype tmpMeta14;
modelica_metatype tmpMeta15;
modelica_metatype tmpMeta16;
modelica_metatype tmpMeta17;
modelica_metatype tmpMeta18;
modelica_metatype tmpMeta19;
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta9 = MMC_CAR(tmp4_3);
tmpMeta10 = MMC_CDR(tmp4_3);
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,0,2) == 0) goto tmp3_end;
_cdecls = tmp4_3;
_path = tmp4_4;
_cache = tmp4_1;
_ih = tmp4_2;
_cache = omc_FCore_setCacheClassName(threadData, _cache, _path);
if(_doSCodeDep)
{
_cdecls = omc_InstUtil_scodeFlatten(threadData, _cdecls, _inPath);
omc_ExecStat_execStat(threadData, _OMC_LIT667);
}
_pathstr = omc_AbsynUtil_pathString(threadData, _path, _OMC_LIT5, 1, 0);
_cache = omc_Builtin_initialGraph(threadData, _cache ,&_env);
_env = omc_FGraphBuildEnv_mkProgramGraph(threadData, _cdecls, _OMC_LIT267, _env);
tmpMeta14 = omc_Lookup_lookupClass(threadData, _cache, _env, _path, _OMC_LIT270, &tmpMeta11, &tmpMeta13);
_cache = tmpMeta14;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta11,2,8) == 0) goto goto_2;
tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 2));
_cdef = tmpMeta11;
_n = tmpMeta12;
_env = tmpMeta13;
omc_Inst_checkInstanceRestriction(threadData, _cdef, _path, _relaxedFrontEnd);
if(omc_Flags_isSet(threadData, _OMC_LIT673))
{
tmpMeta15 = stringAppend(omc_GCExt_profStatsStr(threadData, omc_GCExt_getProfStats(threadData), _OMC_LIT668, _OMC_LIT669),_OMC_LIT17);
fputs(MMC_STRINGDATA(tmpMeta15),stdout);
}
omc_ExecStat_execStat(threadData, _OMC_LIT674);
tmpMeta16 = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClass(threadData, _cache, _env, _ih, omc_UnitAbsynBuilder_emptyInstStore(threadData), _OMC_LIT7, omc_Inst_makeTopComponentPrefix(threadData, _env, _n), _cdef, tmpMeta16, 0, _OMC_LIT9, _OMC_LIT10, _OMC_LIT14 ,&_env ,&_ih ,NULL ,&_dae ,NULL ,NULL ,NULL ,NULL ,NULL);
_dae = omc_InstUtil_reEvaluateInitialIfEqns(threadData, _cache, _env, _dae, 1);
_source = omc_ElementSource_addElementSourcePartOfOpt(threadData, _OMC_LIT665, omc_FGraph_getScopePath(threadData, _env));
_daeElts = omc_DAEUtil_daeElements(threadData, _dae);
_cmt = omc_SCodeUtil_getElementComment(threadData, _cdef);
tmpMeta18 = mmc_mk_box5(21, &DAE_Element_COMP__desc, _pathstr, _daeElts, _source, _cmt);
tmpMeta17 = mmc_mk_cons(tmpMeta18, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta19 = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta17);
_dae = tmpMeta19;
omc_InstHashTable_release(threadData);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _dae;
goto tmp3_done;
}
}
goto tmp3_end;
tmp3_end: ;
}
goto goto_2;
goto_2:;
MMC_THROW_INTERNAL();
goto tmp3_done;
tmp3_done:;
}
}
_outCache = tmpMeta[0+0];
_outEnv = tmpMeta[0+1];
_outIH = tmpMeta[0+2];
_outDAElist = tmpMeta[0+3];
_return: OMC_LABEL_UNUSED
if (out_outEnv) { *out_outEnv = _outEnv; }
if (out_outIH) { *out_outIH = _outIH; }
if (out_outDAElist) { *out_outDAElist = _outDAElist; }
return _outCache;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_Inst_instantiateClass__dispatch(threadData_t *threadData, modelica_metatype _inCache, modelica_metatype _inIH, modelica_metatype _inProgram, modelica_metatype _inPath, modelica_metatype _doSCodeDep, modelica_metatype _relaxedFrontEnd, modelica_metatype *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDAElist)
{
modelica_integer tmp1;
modelica_integer tmp2;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_doSCodeDep);
tmp2 = mmc_unbox_integer(_relaxedFrontEnd);
_outCache = omc_Inst_instantiateClass__dispatch(threadData, _inCache, _inIH, _inProgram, _inPath, tmp1, tmp2, out_outEnv, out_outIH, out_outDAElist);
return _outCache;
}
