#ifdef OMC_BASE_FILE
#define OMC_FILE OMC_BASE_FILE
#else
#define OMC_FILE "/home/mahge/dev/OpenModelica/OMCompiler/Compiler/boot/build/tmp/Inst.c"
#endif
#include "omc_simulation_settings.h"
#include "Inst.h"
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT0,1,4) {&UnitAbsyn_InstStore_NOSTORE__desc,}};
#define _OMC_LIT0 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT0)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT1,1,5) {&DAE_Mod_NOMOD__desc,}};
#define _OMC_LIT1 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT1)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT2,1,3) {&DAE_Prefix_NOPRE__desc,}};
#define _OMC_LIT2 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT2)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT3,1,3) {&InstTypes_CallingScope_TOP__CALL__desc,}};
#define _OMC_LIT3 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT3)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT4,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_LIT4 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT4)
#define _OMC_LIT5_data ""
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT5,0,_OMC_LIT5_data);
#define _OMC_LIT5 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT5)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT6,1,7) {&DAE_ComponentRef_WILD__desc,}};
#define _OMC_LIT6 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT6)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT7,5,3) {&DAE_Connect_SetTrieNode_SET__TRIE__NODE__desc,_OMC_LIT5,_OMC_LIT6,MMC_REFSTRUCTLIT(mmc_nil),MMC_IMMEDIATE(MMC_TAGFIXNUM(0))}};
#define _OMC_LIT7 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT7)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT8,5,3) {&DAE_Connect_Sets_SETS__desc,_OMC_LIT7,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT8 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT8)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT9,2,3) {&DAE_DAElist_DAE__desc,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT9 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT9)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT10,1,5) {&SCode_Mod_NOMOD__desc,}};
#define _OMC_LIT10 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT10)
#define _OMC_LIT11_data "."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT11,1,_OMC_LIT11_data);
#define _OMC_LIT11 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT11)
#define _OMC_LIT12_data "\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT12,1,_OMC_LIT12_data);
#define _OMC_LIT12 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT12)
#define _OMC_LIT13_data "showInstCacheInfo"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT13,17,_OMC_LIT13_data);
#define _OMC_LIT13 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT13)
#define _OMC_LIT14_data "Prints information about instantiation cache hits and additions. Defaults to false."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT14,83,_OMC_LIT14_data);
#define _OMC_LIT14 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT14)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT15,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT14}};
#define _OMC_LIT15 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT15)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT16,5,3) {&Flags_DebugFlag_DEBUG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(110)),_OMC_LIT13,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),_OMC_LIT15}};
#define _OMC_LIT16 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT16)
#define _OMC_LIT17_data "$"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT17,1,_OMC_LIT17_data);
#define _OMC_LIT17 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT17)
#define _OMC_LIT18_data "Cache"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT18,5,_OMC_LIT18_data);
#define _OMC_LIT18 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT18)
#define _OMC_LIT19_data "Turns off the instantiation cache."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT19,34,_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(17)),_OMC_LIT18,MMC_IMMEDIATE(MMC_TAGFIXNUM(1)),_OMC_LIT20}};
#define _OMC_LIT21 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT21)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT22,1,4) {&InstTypes_CallingScope_INNER__CALL__desc,}};
#define _OMC_LIT22 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT22)
#define _OMC_LIT23_data "abs"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT23,3,_OMC_LIT23_data);
#define _OMC_LIT23 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT23)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT24,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT23}};
#define _OMC_LIT24 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT24)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT25,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT24}};
#define _OMC_LIT25 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT25)
#define _OMC_LIT26_data "acos"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT26,4,_OMC_LIT26_data);
#define _OMC_LIT26 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT26)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT27,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT26}};
#define _OMC_LIT27 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT27)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT28,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT27}};
#define _OMC_LIT28 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT28)
#define _OMC_LIT29_data "activeState"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT29,11,_OMC_LIT29_data);
#define _OMC_LIT29 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT29)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT30,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT29}};
#define _OMC_LIT30 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT30)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT31,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT30}};
#define _OMC_LIT31 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT31)
#define _OMC_LIT32_data "actualStream"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT32,12,_OMC_LIT32_data);
#define _OMC_LIT32 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT32)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT33,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT32}};
#define _OMC_LIT33 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT33)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT34,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT33}};
#define _OMC_LIT34 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT34)
#define _OMC_LIT35_data "asin"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT35,4,_OMC_LIT35_data);
#define _OMC_LIT35 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT35)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT36,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT35}};
#define _OMC_LIT36 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT36)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT37,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT36}};
#define _OMC_LIT37 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT37)
#define _OMC_LIT38_data "atan"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT38,4,_OMC_LIT38_data);
#define _OMC_LIT38 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT38)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT39,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT38}};
#define _OMC_LIT39 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT39)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT40,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT39}};
#define _OMC_LIT40 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT40)
#define _OMC_LIT41_data "atan2"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT41,5,_OMC_LIT41_data);
#define _OMC_LIT41 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT41)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT42,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT41}};
#define _OMC_LIT42 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT42)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT43,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT42}};
#define _OMC_LIT43 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT43)
#define _OMC_LIT44_data "backSample"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT44,10,_OMC_LIT44_data);
#define _OMC_LIT44 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT44)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT45,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT44}};
#define _OMC_LIT45 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT45)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT46,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT45}};
#define _OMC_LIT46 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT46)
#define _OMC_LIT47_data "cardinality"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT47,11,_OMC_LIT47_data);
#define _OMC_LIT47 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT47)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT48,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT47}};
#define _OMC_LIT48 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT48)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT49,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT48}};
#define _OMC_LIT49 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT49)
#define _OMC_LIT50_data "cat"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT50,3,_OMC_LIT50_data);
#define _OMC_LIT50 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT50)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT51,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT50}};
#define _OMC_LIT51 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT51)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT52,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT51}};
#define _OMC_LIT52 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT52)
#define _OMC_LIT53_data "ceil"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT53,4,_OMC_LIT53_data);
#define _OMC_LIT53 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT53)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT54,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT53}};
#define _OMC_LIT54 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT54)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT55,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT54}};
#define _OMC_LIT55 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT55)
#define _OMC_LIT56_data "change"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT56,6,_OMC_LIT56_data);
#define _OMC_LIT56 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT56)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT57,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT56}};
#define _OMC_LIT57 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT57)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT58,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT57}};
#define _OMC_LIT58 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT58)
#define _OMC_LIT59_data "classDirectory"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT59,14,_OMC_LIT59_data);
#define _OMC_LIT59 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT59)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT60,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT59}};
#define _OMC_LIT60 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT60)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT61,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT60}};
#define _OMC_LIT61 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT61)
#define _OMC_LIT62_data "cos"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT62,3,_OMC_LIT62_data);
#define _OMC_LIT62 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT62)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT63,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT62}};
#define _OMC_LIT63 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT63)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT64,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT63}};
#define _OMC_LIT64 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT64)
#define _OMC_LIT65_data "cosh"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT65,4,_OMC_LIT65_data);
#define _OMC_LIT65 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT65)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT66,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT65}};
#define _OMC_LIT66 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT66)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT67,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT66}};
#define _OMC_LIT67 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT67)
#define _OMC_LIT68_data "cross"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT68,5,_OMC_LIT68_data);
#define _OMC_LIT68 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT68)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT69,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT68}};
#define _OMC_LIT69 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT69)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT70,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT69}};
#define _OMC_LIT70 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT70)
#define _OMC_LIT71_data "delay"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT71,5,_OMC_LIT71_data);
#define _OMC_LIT71 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT71)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT72,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT71}};
#define _OMC_LIT72 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT72)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT73,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT72}};
#define _OMC_LIT73 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT73)
#define _OMC_LIT74_data "der"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT74,3,_OMC_LIT74_data);
#define _OMC_LIT74 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT74)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT75,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT74}};
#define _OMC_LIT75 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT75)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT76,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT75}};
#define _OMC_LIT76 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT76)
#define _OMC_LIT77_data "diagonal"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT77,8,_OMC_LIT77_data);
#define _OMC_LIT77 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT77)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT78,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT77}};
#define _OMC_LIT78 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT78)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT79,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT78}};
#define _OMC_LIT79 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT79)
#define _OMC_LIT80_data "div"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT80,3,_OMC_LIT80_data);
#define _OMC_LIT80 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT80)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT81,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT80}};
#define _OMC_LIT81 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT81)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT82,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT81}};
#define _OMC_LIT82 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT82)
#define _OMC_LIT83_data "edge"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT83,4,_OMC_LIT83_data);
#define _OMC_LIT83 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT83)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT84,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT83}};
#define _OMC_LIT84 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT84)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT85,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT84}};
#define _OMC_LIT85 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT85)
#define _OMC_LIT86_data "exp"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT86,3,_OMC_LIT86_data);
#define _OMC_LIT86 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT86)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT87,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT86}};
#define _OMC_LIT87 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT87)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT88,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT87}};
#define _OMC_LIT88 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT88)
#define _OMC_LIT89_data "fill"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT89,4,_OMC_LIT89_data);
#define _OMC_LIT89 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT89)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT90,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT89}};
#define _OMC_LIT90 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT90)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT91,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT90}};
#define _OMC_LIT91 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT91)
#define _OMC_LIT92_data "firstTick"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT92,9,_OMC_LIT92_data);
#define _OMC_LIT92 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT92)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT93,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT92}};
#define _OMC_LIT93 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT93)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT94,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT93}};
#define _OMC_LIT94 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT94)
#define _OMC_LIT95_data "floor"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT95,5,_OMC_LIT95_data);
#define _OMC_LIT95 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT95)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT96,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT95}};
#define _OMC_LIT96 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT96)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT97,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT96}};
#define _OMC_LIT97 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT97)
#define _OMC_LIT98_data "getInstanceName"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT98,15,_OMC_LIT98_data);
#define _OMC_LIT98 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT98)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT99,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT98}};
#define _OMC_LIT99 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT99)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT100,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT99}};
#define _OMC_LIT100 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT100)
#define _OMC_LIT101_data "hold"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT101,4,_OMC_LIT101_data);
#define _OMC_LIT101 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT101)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT102,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT101}};
#define _OMC_LIT102 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT102)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT103,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT102}};
#define _OMC_LIT103 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT103)
#define _OMC_LIT104_data "homotopy"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT104,8,_OMC_LIT104_data);
#define _OMC_LIT104 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT104)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT105,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT104}};
#define _OMC_LIT105 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT105)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT106,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT105}};
#define _OMC_LIT106 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT106)
#define _OMC_LIT107_data "identity"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT107,8,_OMC_LIT107_data);
#define _OMC_LIT107 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT107)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT108,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT107}};
#define _OMC_LIT108 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT108)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT109,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT108}};
#define _OMC_LIT109 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT109)
#define _OMC_LIT110_data "inStream"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT110,8,_OMC_LIT110_data);
#define _OMC_LIT110 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT110)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT111,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT110}};
#define _OMC_LIT111 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT111)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT112,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT111}};
#define _OMC_LIT112 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT112)
#define _OMC_LIT113_data "initial"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT113,7,_OMC_LIT113_data);
#define _OMC_LIT113 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT113)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT114,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT113}};
#define _OMC_LIT114 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT114)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT115,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT114}};
#define _OMC_LIT115 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT115)
#define _OMC_LIT116_data "initialState"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT116,12,_OMC_LIT116_data);
#define _OMC_LIT116 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT116)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT117,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT116}};
#define _OMC_LIT117 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT117)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT118,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT117}};
#define _OMC_LIT118 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT118)
#define _OMC_LIT119_data "integer"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT119,7,_OMC_LIT119_data);
#define _OMC_LIT119 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT119)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT120,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT119}};
#define _OMC_LIT120 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT120)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT121,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT120}};
#define _OMC_LIT121 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT121)
#define _OMC_LIT122_data "interval"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT122,8,_OMC_LIT122_data);
#define _OMC_LIT122 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT122)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT123,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT122}};
#define _OMC_LIT123 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT123)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT124,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT123}};
#define _OMC_LIT124 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT124)
#define _OMC_LIT125_data "intAbs"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT125,6,_OMC_LIT125_data);
#define _OMC_LIT125 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT125)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT126,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT125}};
#define _OMC_LIT126 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT126)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT127,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT126}};
#define _OMC_LIT127 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT127)
#define _OMC_LIT128_data "linspace"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT128,8,_OMC_LIT128_data);
#define _OMC_LIT128 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT128)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT129,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT128}};
#define _OMC_LIT129 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT129)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT130,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT129}};
#define _OMC_LIT130 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT130)
#define _OMC_LIT131_data "log"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT131,3,_OMC_LIT131_data);
#define _OMC_LIT131 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT131)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT132,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT131}};
#define _OMC_LIT132 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT132)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT133,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT132}};
#define _OMC_LIT133 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT133)
#define _OMC_LIT134_data "log10"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT134,5,_OMC_LIT134_data);
#define _OMC_LIT134 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT134)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT135,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT134}};
#define _OMC_LIT135 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT135)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT136,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT135}};
#define _OMC_LIT136 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT136)
#define _OMC_LIT137_data "matrix"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT137,6,_OMC_LIT137_data);
#define _OMC_LIT137 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT137)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT138,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT137}};
#define _OMC_LIT138 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT138)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT139,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT138}};
#define _OMC_LIT139 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT139)
#define _OMC_LIT140_data "max"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT140,3,_OMC_LIT140_data);
#define _OMC_LIT140 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT140)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT141,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT140}};
#define _OMC_LIT141 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT141)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT142,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT141}};
#define _OMC_LIT142 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT142)
#define _OMC_LIT143_data "min"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT143,3,_OMC_LIT143_data);
#define _OMC_LIT143 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT143)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT144,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT143}};
#define _OMC_LIT144 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT144)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT145,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT144}};
#define _OMC_LIT145 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT145)
#define _OMC_LIT146_data "mod"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT146,3,_OMC_LIT146_data);
#define _OMC_LIT146 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT146)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT147,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT146}};
#define _OMC_LIT147 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT147)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT148,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT147}};
#define _OMC_LIT148 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT148)
#define _OMC_LIT149_data "ndims"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT149,5,_OMC_LIT149_data);
#define _OMC_LIT149 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT149)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT150,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT149}};
#define _OMC_LIT150 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT150)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT151,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT150}};
#define _OMC_LIT151 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT151)
#define _OMC_LIT152_data "noClock"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT152,7,_OMC_LIT152_data);
#define _OMC_LIT152 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT152)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT153,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT152}};
#define _OMC_LIT153 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT153)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT154,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT153}};
#define _OMC_LIT154 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT154)
#define _OMC_LIT155_data "noEvent"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT155,7,_OMC_LIT155_data);
#define _OMC_LIT155 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT155)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT156,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT155}};
#define _OMC_LIT156 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT156)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT157,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT156}};
#define _OMC_LIT157 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT157)
#define _OMC_LIT158_data "ones"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT158,4,_OMC_LIT158_data);
#define _OMC_LIT158 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT158)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT159,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT158}};
#define _OMC_LIT159 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT159)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT160,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT159}};
#define _OMC_LIT160 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT160)
#define _OMC_LIT161_data "outerProduct"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT161,12,_OMC_LIT161_data);
#define _OMC_LIT161 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT161)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT162,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT161}};
#define _OMC_LIT162 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT162)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT163,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT162}};
#define _OMC_LIT163 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT163)
#define _OMC_LIT164_data "pre"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT164,3,_OMC_LIT164_data);
#define _OMC_LIT164 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT164)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT165,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT164}};
#define _OMC_LIT165 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT165)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT166,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT165}};
#define _OMC_LIT166 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT166)
#define _OMC_LIT167_data "previous"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT167,8,_OMC_LIT167_data);
#define _OMC_LIT167 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT167)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT168,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT167}};
#define _OMC_LIT168 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT168)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT169,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT168}};
#define _OMC_LIT169 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT169)
#define _OMC_LIT170_data "print"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT170,5,_OMC_LIT170_data);
#define _OMC_LIT170 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT170)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT171,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT170}};
#define _OMC_LIT171 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT171)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT172,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT171}};
#define _OMC_LIT172 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT172)
#define _OMC_LIT173_data "product"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT173,7,_OMC_LIT173_data);
#define _OMC_LIT173 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT173)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT174,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT173}};
#define _OMC_LIT174 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT174)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT175,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT174}};
#define _OMC_LIT175 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT175)
#define _OMC_LIT176_data "realAbs"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT176,7,_OMC_LIT176_data);
#define _OMC_LIT176 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT176)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT177,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT176}};
#define _OMC_LIT177 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT177)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT178,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT177}};
#define _OMC_LIT178 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT178)
#define _OMC_LIT179_data "rem"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT179,3,_OMC_LIT179_data);
#define _OMC_LIT179 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT179)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT180,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT179}};
#define _OMC_LIT180 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT180)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT181,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT180}};
#define _OMC_LIT181 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT181)
#define _OMC_LIT182_data "rooted"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT182,6,_OMC_LIT182_data);
#define _OMC_LIT182 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT182)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT183,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT182}};
#define _OMC_LIT183 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT183)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT184,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT183}};
#define _OMC_LIT184 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT184)
#define _OMC_LIT185_data "sample"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT185,6,_OMC_LIT185_data);
#define _OMC_LIT185 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT185)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT186,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT185}};
#define _OMC_LIT186 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT186)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT187,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT186}};
#define _OMC_LIT187 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT187)
#define _OMC_LIT188_data "scalar"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT188,6,_OMC_LIT188_data);
#define _OMC_LIT188 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT188)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT189,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT188}};
#define _OMC_LIT189 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT189)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT190,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT189}};
#define _OMC_LIT190 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT190)
#define _OMC_LIT191_data "semilinear"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT191,10,_OMC_LIT191_data);
#define _OMC_LIT191 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT191)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT192,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT191}};
#define _OMC_LIT192 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT192)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT193,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT192}};
#define _OMC_LIT193 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT193)
#define _OMC_LIT194_data "shiftSample"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT194,11,_OMC_LIT194_data);
#define _OMC_LIT194 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT194)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT195,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT194}};
#define _OMC_LIT195 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT195)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT196,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT195}};
#define _OMC_LIT196 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT196)
#define _OMC_LIT197_data "sign"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT197,4,_OMC_LIT197_data);
#define _OMC_LIT197 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT197)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT198,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT197}};
#define _OMC_LIT198 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT198)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT199,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT198}};
#define _OMC_LIT199 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT199)
#define _OMC_LIT200_data "sin"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT200,3,_OMC_LIT200_data);
#define _OMC_LIT200 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT200)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT201,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT200}};
#define _OMC_LIT201 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT201)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT202,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT201}};
#define _OMC_LIT202 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT202)
#define _OMC_LIT203_data "sinh"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT203,4,_OMC_LIT203_data);
#define _OMC_LIT203 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT203)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT204,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT203}};
#define _OMC_LIT204 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT204)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT205,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT204}};
#define _OMC_LIT205 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT205)
#define _OMC_LIT206_data "size"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT206,4,_OMC_LIT206_data);
#define _OMC_LIT206 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT206)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT207,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT206}};
#define _OMC_LIT207 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT207)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT208,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT207}};
#define _OMC_LIT208 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT208)
#define _OMC_LIT209_data "skew"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT209,4,_OMC_LIT209_data);
#define _OMC_LIT209 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT209)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT210,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT209}};
#define _OMC_LIT210 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT210)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT211,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT210}};
#define _OMC_LIT211 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT211)
#define _OMC_LIT212_data "smooth"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT212,6,_OMC_LIT212_data);
#define _OMC_LIT212 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT212)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT213,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT212}};
#define _OMC_LIT213 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT213)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT214,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT213}};
#define _OMC_LIT214 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT214)
#define _OMC_LIT215_data "spatialDistribution"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT215,19,_OMC_LIT215_data);
#define _OMC_LIT215 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT215)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT216,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT215}};
#define _OMC_LIT216 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT216)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT217,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT216}};
#define _OMC_LIT217 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT217)
#define _OMC_LIT218_data "sqrt"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT218,4,_OMC_LIT218_data);
#define _OMC_LIT218 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT218)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT219,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT218}};
#define _OMC_LIT219 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT219)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT220,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT219}};
#define _OMC_LIT220 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT220)
#define _OMC_LIT221_data "subSample"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT221,9,_OMC_LIT221_data);
#define _OMC_LIT221 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT221)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT222,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT221}};
#define _OMC_LIT222 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT222)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT223,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT222}};
#define _OMC_LIT223 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT223)
#define _OMC_LIT224_data "symmetric"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT224,9,_OMC_LIT224_data);
#define _OMC_LIT224 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT224)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT225,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT224}};
#define _OMC_LIT225 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT225)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT226,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT225}};
#define _OMC_LIT226 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT226)
#define _OMC_LIT227_data "tan"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT227,3,_OMC_LIT227_data);
#define _OMC_LIT227 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT227)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT228,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT227}};
#define _OMC_LIT228 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT228)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT229,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT228}};
#define _OMC_LIT229 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT229)
#define _OMC_LIT230_data "tanh"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT230,4,_OMC_LIT230_data);
#define _OMC_LIT230 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT230)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT231,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT230}};
#define _OMC_LIT231 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT231)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT232,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT231}};
#define _OMC_LIT232 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT232)
#define _OMC_LIT233_data "terminal"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT233,8,_OMC_LIT233_data);
#define _OMC_LIT233 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT233)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT234,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT233}};
#define _OMC_LIT234 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT234)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT235,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT234}};
#define _OMC_LIT235 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT235)
#define _OMC_LIT236_data "ticksInState"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT236,12,_OMC_LIT236_data);
#define _OMC_LIT236 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT236)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT237,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT236}};
#define _OMC_LIT237 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT237)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT238,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT237}};
#define _OMC_LIT238 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT238)
#define _OMC_LIT239_data "timeInState"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT239,11,_OMC_LIT239_data);
#define _OMC_LIT239 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT239)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT240,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT239}};
#define _OMC_LIT240 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT240)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT241,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT240}};
#define _OMC_LIT241 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT241)
#define _OMC_LIT242_data "transition"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT242,10,_OMC_LIT242_data);
#define _OMC_LIT242 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT242)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT243,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT242}};
#define _OMC_LIT243 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT243)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT244,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT243}};
#define _OMC_LIT244 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT244)
#define _OMC_LIT245_data "transpose"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT245,9,_OMC_LIT245_data);
#define _OMC_LIT245 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT245)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT246,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT245}};
#define _OMC_LIT246 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT246)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT247,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT246}};
#define _OMC_LIT247 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT247)
#define _OMC_LIT248_data "vector"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT248,6,_OMC_LIT248_data);
#define _OMC_LIT248 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT248)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT249,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT248}};
#define _OMC_LIT249 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT249)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT250,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT249}};
#define _OMC_LIT250 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT250)
#define _OMC_LIT251_data "zeros"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT251,5,_OMC_LIT251_data);
#define _OMC_LIT251 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT251)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT252,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT251}};
#define _OMC_LIT252 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT252)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT253,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT252}};
#define _OMC_LIT253 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT253)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT254,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT5}};
#define _OMC_LIT254 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT254)
#define _OMC_LIT255_data "Inst.removeSelfReferenceAndUpdate"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT255,33,_OMC_LIT255_data);
#define _OMC_LIT255 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT255)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT256,3,3) {&SCode_Comment_COMMENT__desc,MMC_REFSTRUCTLIT(mmc_none),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT256 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT256)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT257,1,3) {&DAE_Binding_UNBOUND__desc,}};
#define _OMC_LIT257 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT257)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT258,1,4) {&FCore_Status_VAR__TYPED__desc,}};
#define _OMC_LIT258 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT258)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT259,1,5) {&ErrorTypes_MessageType_TRANSLATION__desc,}};
#define _OMC_LIT259 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT259)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT260,1,4) {&ErrorTypes_Severity_ERROR__desc,}};
#define _OMC_LIT260 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT260)
#define _OMC_LIT261_data "No classes are loaded."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT261,22,_OMC_LIT261_data);
#define _OMC_LIT261 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT261)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT262,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT261}};
#define _OMC_LIT262 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT262)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT263,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(37)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT262}};
#define _OMC_LIT263 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT263)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT264,1,3) {&FCore_Kind_USERDEFINED__desc,}};
#define _OMC_LIT264 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT264)
static const MMC_DEFREALLIT(_OMC_LIT_STRUCT265,0.0);
#define _OMC_LIT265 MMC_REFREALLIT(_OMC_LIT_STRUCT265)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT266,8,3) {&SourceInfo_SOURCEINFO__desc,_OMC_LIT5,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_LIT265}};
#define _OMC_LIT266 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT266)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT267,1,1) {_OMC_LIT266}};
#define _OMC_LIT267 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT267)
#define _OMC_LIT268_data "Error occurred while flattening model %s"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT268,40,_OMC_LIT268_data);
#define _OMC_LIT268 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT268)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT269,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT268}};
#define _OMC_LIT269 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT269)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT270,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(89)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT269}};
#define _OMC_LIT270 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT270)
#define _OMC_LIT271_data "failtrace"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT271,9,_OMC_LIT271_data);
#define _OMC_LIT271 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT271)
#define _OMC_LIT272_data "Sets whether to print a failtrace or not."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT272,41,_OMC_LIT272_data);
#define _OMC_LIT272 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT272)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT273,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT272}};
#define _OMC_LIT273 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT273)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT274,5,3) {&Flags_DebugFlag_DEBUG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1)),_OMC_LIT271,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),_OMC_LIT273}};
#define _OMC_LIT274 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT274)
#define _OMC_LIT275_data "- Inst.insertClassAttribute failed\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT275,35,_OMC_LIT275_data);
#define _OMC_LIT275 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT275)
#define _OMC_LIT276_data "objective"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT276,9,_OMC_LIT276_data);
#define _OMC_LIT276 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT276)
#define _OMC_LIT277_data "objectiveIntegrand"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT277,18,_OMC_LIT277_data);
#define _OMC_LIT277 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT277)
#define _OMC_LIT278_data "startTime"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT278,9,_OMC_LIT278_data);
#define _OMC_LIT278 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT278)
#define _OMC_LIT279_data "finalTime"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT279,9,_OMC_LIT279_data);
#define _OMC_LIT279 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT279)
#define _OMC_LIT280_data "Optimica: %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT280,13,_OMC_LIT280_data);
#define _OMC_LIT280 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT280)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT281,2,4) {&Gettext_TranslatableContent_notrans__desc,_OMC_LIT280}};
#define _OMC_LIT281 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT281)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT282,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(7006)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT281}};
#define _OMC_LIT282 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT282)
#define _OMC_LIT283_data "Class Attributes allowed only for Optimization classes."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT283,55,_OMC_LIT283_data);
#define _OMC_LIT283 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT283)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT284,2,1) {_OMC_LIT283,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT284 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT284)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT285,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_LIT285 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT285)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT286,2,30) {&DAE_Element_CLASS__ATTRIBUTES__desc,_OMC_LIT285}};
#define _OMC_LIT286 MMC_REFSTRUCTLIT(_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,2,3) {&DAE_DAElist_DAE__desc,_OMC_LIT287}};
#define _OMC_LIT288 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT288)
#define _OMC_LIT289_data "- Inst.instClassAttributes failed\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT289,34,_OMC_LIT289_data);
#define _OMC_LIT289 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT289)
#define _OMC_LIT290_data "- Inst.instConstraints failed\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT290,30,_OMC_LIT290_data);
#define _OMC_LIT290 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT290)
#define _OMC_LIT291_data "Boolean"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT291,7,_OMC_LIT291_data);
#define _OMC_LIT291 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT291)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT292,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT291}};
#define _OMC_LIT292 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT292)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT293,2,5) {&Absyn_Path_FULLYQUALIFIED__desc,_OMC_LIT292}};
#define _OMC_LIT293 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT293)
#define _OMC_LIT294_data "Integer"
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 "Real"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT297,4,_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 "String"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT300,6,_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 "EnumType"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT303,8,_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 "assert"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT306,6,_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)
#define _OMC_LIT308_data "reinit"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT308,6,_OMC_LIT308_data);
#define _OMC_LIT308 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT308)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT309,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT308}};
#define _OMC_LIT309 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT309)
#define _OMC_LIT310_data "list"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT310,4,_OMC_LIT310_data);
#define _OMC_LIT310 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT310)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT311,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT310}};
#define _OMC_LIT311 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT311)
#define _OMC_LIT312_data "Option"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT312,6,_OMC_LIT312_data);
#define _OMC_LIT312 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT312)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT313,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT312}};
#define _OMC_LIT313 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT313)
#define _OMC_LIT314_data "tuple"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT314,5,_OMC_LIT314_data);
#define _OMC_LIT314 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT314)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT315,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT314}};
#define _OMC_LIT315 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT315)
#define _OMC_LIT316_data "polymorphic"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT316,11,_OMC_LIT316_data);
#define _OMC_LIT316 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT316)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT317,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT316}};
#define _OMC_LIT317 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT317)
#define _OMC_LIT318_data "array"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT318,5,_OMC_LIT318_data);
#define _OMC_LIT318 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT318)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT319,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT318}};
#define _OMC_LIT319 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT319)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT320,1,4) {&InstTypes_SearchStrategy_SEARCH__ALSO__BUILTIN__desc,}};
#define _OMC_LIT320 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT320)
#define _OMC_LIT321_data "updateComponentInEnv3"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT321,21,_OMC_LIT321_data);
#define _OMC_LIT321 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT321)
#define _OMC_LIT322_data "Inst.updateComponentInEnv2"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT322,26,_OMC_LIT322_data);
#define _OMC_LIT322 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT322)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT323,1,7) {&FCore_Status_CLS__UNTYPED__desc,}};
#define _OMC_LIT323 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT323)
#define _OMC_LIT324_data "- Inst.updateComponentInEnv failed, cref = "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT324,43,_OMC_LIT324_data);
#define _OMC_LIT324 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT324)
#define _OMC_LIT325_data " mods: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT325,7,_OMC_LIT325_data);
#define _OMC_LIT325 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT325)
#define _OMC_LIT326_data " scope: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT326,8,_OMC_LIT326_data);
#define _OMC_LIT326 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT326)
#define _OMC_LIT327_data " prefix: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT327,9,_OMC_LIT327_data);
#define _OMC_LIT327 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT327)
#define _OMC_LIT328_data "updateComponentsInEnv__"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT328,23,_OMC_LIT328_data);
#define _OMC_LIT328 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT328)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT329,1,4) {&SCode_Each_NOT__EACH__desc,}};
#define _OMC_LIT329 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT329)
#define _OMC_LIT330_data "updateCompeltsMods"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT330,18,_OMC_LIT330_data);
#define _OMC_LIT330 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT330)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT331,1,11) {&DAE_Type_T__UNKNOWN__desc,}};
#define _OMC_LIT331 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT331)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT332,2,3) {&DAE_Dimension_DIM__INTEGER__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT332 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT332)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT333,2,1) {_OMC_LIT332,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT333 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT333)
#define _OMC_LIT334_data "grammar"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT334,7,_OMC_LIT334_data);
#define _OMC_LIT334 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT334)
#define _OMC_LIT335_data "g"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT335,1,_OMC_LIT335_data);
#define _OMC_LIT335 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT335)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT336,1,1) {_OMC_LIT335}};
#define _OMC_LIT336 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT336)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT337,1,4) {&Flags_FlagVisibility_EXTERNAL__desc,}};
#define _OMC_LIT337 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT337)
#define _OMC_LIT338_data "Modelica"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT338,8,_OMC_LIT338_data);
#define _OMC_LIT338 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT338)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT339,2,0) {_OMC_LIT338,MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT339 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT339)
#define _OMC_LIT340_data "MetaModelica"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT340,12,_OMC_LIT340_data);
#define _OMC_LIT340 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT340)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT341,2,0) {_OMC_LIT340,MMC_IMMEDIATE(MMC_TAGFIXNUM(2))}};
#define _OMC_LIT341 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT341)
#define _OMC_LIT342_data "ParModelica"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT342,11,_OMC_LIT342_data);
#define _OMC_LIT342 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT342)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT343,2,0) {_OMC_LIT342,MMC_IMMEDIATE(MMC_TAGFIXNUM(3))}};
#define _OMC_LIT343 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT343)
#define _OMC_LIT344_data "Optimica"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT344,8,_OMC_LIT344_data);
#define _OMC_LIT344 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT344)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT345,2,0) {_OMC_LIT344,MMC_IMMEDIATE(MMC_TAGFIXNUM(4))}};
#define _OMC_LIT345 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT345)
#define _OMC_LIT346_data "PDEModelica"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT346,11,_OMC_LIT346_data);
#define _OMC_LIT346 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT346)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT347,2,0) {_OMC_LIT346,MMC_IMMEDIATE(MMC_TAGFIXNUM(5))}};
#define _OMC_LIT347 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT347)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT348,2,1) {_OMC_LIT347,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT348 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT348)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT349,2,1) {_OMC_LIT345,_OMC_LIT348}};
#define _OMC_LIT349 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT349)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT350,2,1) {_OMC_LIT343,_OMC_LIT349}};
#define _OMC_LIT350 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT350)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT351,2,1) {_OMC_LIT341,_OMC_LIT350}};
#define _OMC_LIT351 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT351)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT352,2,1) {_OMC_LIT339,_OMC_LIT351}};
#define _OMC_LIT352 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT352)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT353,3,10) {&Flags_FlagData_ENUM__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1)),_OMC_LIT352}};
#define _OMC_LIT353 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT353)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT354,2,1) {_OMC_LIT346,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT354 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT354)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT355,2,1) {_OMC_LIT344,_OMC_LIT354}};
#define _OMC_LIT355 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT355)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT356,2,1) {_OMC_LIT342,_OMC_LIT355}};
#define _OMC_LIT356 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT356)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT357,2,1) {_OMC_LIT340,_OMC_LIT356}};
#define _OMC_LIT357 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT357)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT358,2,1) {_OMC_LIT338,_OMC_LIT357}};
#define _OMC_LIT358 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT358)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT359,2,3) {&Flags_ValidOptions_STRING__OPTION__desc,_OMC_LIT358}};
#define _OMC_LIT359 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT359)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT360,1,1) {_OMC_LIT359}};
#define _OMC_LIT360 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT360)
#define _OMC_LIT361_data "Sets the grammar and semantics to accept."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT361,41,_OMC_LIT361_data);
#define _OMC_LIT361 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT361)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT362,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT361}};
#define _OMC_LIT362 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT362)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT363,8,3) {&Flags_ConfigFlag_CONFIG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(6)),_OMC_LIT334,_OMC_LIT336,_OMC_LIT337,_OMC_LIT353,_OMC_LIT360,_OMC_LIT362}};
#define _OMC_LIT363 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT363)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT364,1,5) {&FCore_Status_VAR__DAE__desc,}};
#define _OMC_LIT364 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT364)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT365,1,3) {&SCode_Visibility_PUBLIC__desc,}};
#define _OMC_LIT365 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT365)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT366,1,4) {&SCode_Redeclare_NOT__REDECLARE__desc,}};
#define _OMC_LIT366 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT366)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT367,1,4) {&SCode_Final_NOT__FINAL__desc,}};
#define _OMC_LIT367 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT367)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT368,1,6) {&Absyn_InnerOuter_NOT__INNER__OUTER__desc,}};
#define _OMC_LIT368 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT368)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT369,1,4) {&SCode_Replaceable_NOT__REPLACEABLE__desc,}};
#define _OMC_LIT369 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT369)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT370,6,3) {&SCode_Prefixes_PREFIXES__desc,_OMC_LIT365,_OMC_LIT366,_OMC_LIT367,_OMC_LIT368,_OMC_LIT369}};
#define _OMC_LIT370 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT370)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT371,1,4) {&SCode_Encapsulated_NOT__ENCAPSULATED__desc,}};
#define _OMC_LIT371 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT371)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT372,1,4) {&SCode_Partial_NOT__PARTIAL__desc,}};
#define _OMC_LIT372 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT372)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT373,1,10) {&SCode_Restriction_R__TYPE__desc,}};
#define _OMC_LIT373 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT373)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT374,1,5) {&SCode_Parallelism_NON__PARALLEL__desc,}};
#define _OMC_LIT374 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT374)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT375,1,3) {&SCode_Variability_VAR__desc,}};
#define _OMC_LIT375 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT375)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT376,1,5) {&Absyn_Direction_BIDIR__desc,}};
#define _OMC_LIT376 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT376)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT377,1,3) {&Absyn_IsField_NONFIELD__desc,}};
#define _OMC_LIT377 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT377)
#define _OMC_LIT378_data "Class %s not found in scope %s while instantiating %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT378,54,_OMC_LIT378_data);
#define _OMC_LIT378 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT378)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT379,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT378}};
#define _OMC_LIT379 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT379)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT380,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(4)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT379}};
#define _OMC_LIT380 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT380)
#define _OMC_LIT381_data "Lookup class failed:"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT381,20,_OMC_LIT381_data);
#define _OMC_LIT381 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT381)
#define _OMC_LIT382_data "- Inst.instElement failed: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT382,27,_OMC_LIT382_data);
#define _OMC_LIT382 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT382)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT383,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_LIT383 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT383)
#define _OMC_LIT384_data "  Scope: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT384,9,_OMC_LIT384_data);
#define _OMC_LIT384 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT384)
#define _OMC_LIT385_data "Invalid redeclaration of %s, a redeclare may not have a condition attribute."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT385,76,_OMC_LIT385_data);
#define _OMC_LIT385 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT385)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT386,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT385}};
#define _OMC_LIT386 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT386)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT387,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(325)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT386}};
#define _OMC_LIT387 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT387)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT388,1,6) {&DAE_ConnectorType_NON__CONNECTOR__desc,}};
#define _OMC_LIT388 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT388)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT389,7,3) {&DAE_Attributes_ATTR__desc,_OMC_LIT388,_OMC_LIT374,_OMC_LIT375,_OMC_LIT376,_OMC_LIT368,_OMC_LIT365}};
#define _OMC_LIT389 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT389)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT390,1,6) {&FCore_Status_VAR__DELETED__desc,}};
#define _OMC_LIT390 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT390)
#define _OMC_LIT391_data "empty"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT391,5,_OMC_LIT391_data);
#define _OMC_LIT391 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT391)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT392,2,4) {&FCore_Graph_EG__desc,_OMC_LIT391}};
#define _OMC_LIT392 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT392)
#define _OMC_LIT393_data "instElement2"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT393,12,_OMC_LIT393_data);
#define _OMC_LIT393 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT393)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT394,1,7) {&ClassInf_Event_NEWDEF__desc,}};
#define _OMC_LIT394 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT394)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT395,1,1) {MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT395 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT395)
#define _OMC_LIT396_data "Class %s not found in scope %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT396,31,_OMC_LIT396_data);
#define _OMC_LIT396 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT396)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT397,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT396}};
#define _OMC_LIT397 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT397)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT398,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(3)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT397}};
#define _OMC_LIT398 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT398)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT399,3,5) {&Absyn_ComponentRef_CREF__IDENT__desc,_OMC_LIT5,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT399 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT399)
#define _OMC_LIT400_data "instBasictypeBaseclass2"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT400,23,_OMC_LIT400_data);
#define _OMC_LIT400 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT400)
#define _OMC_LIT401_data "Class %s inherits builtin type but has components."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT401,50,_OMC_LIT401_data);
#define _OMC_LIT401 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT401)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT402,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT401}};
#define _OMC_LIT402 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT402)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT403,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(87)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT402}};
#define _OMC_LIT403 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT403)
#define _OMC_LIT404_data "instBasictypeBaseclass"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT404,22,_OMC_LIT404_data);
#define _OMC_LIT404 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT404)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT405,1,3) {&SCode_ConnectorType_POTENTIAL__desc,}};
#define _OMC_LIT405 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT405)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT406,7,3) {&SCode_Attributes_ATTR__desc,MMC_REFSTRUCTLIT(mmc_nil),_OMC_LIT405,_OMC_LIT374,_OMC_LIT375,_OMC_LIT376,_OMC_LIT377}};
#define _OMC_LIT406 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT406)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT407,1,5) {&SCode_Restriction_R__MODEL__desc,}};
#define _OMC_LIT407 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT407)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT408,1,11) {&SCode_Restriction_R__PACKAGE__desc,}};
#define _OMC_LIT408 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT408)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT409,2,6) {&SCode_Restriction_R__RECORD__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT409 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT409)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT410,2,6) {&SCode_Restriction_R__RECORD__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(0))}};
#define _OMC_LIT410 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT410)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT411,4,4) {&DAE_ComponentRef_CREF__IDENT__desc,_OMC_LIT5,_OMC_LIT331,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT411 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT411)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT412,2,0) {_OMC_LIT411,_OMC_LIT411}};
#define _OMC_LIT412 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT412)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT413,1,6) {&ClassInf_Event_FOUND__EXT__DECL__desc,}};
#define _OMC_LIT413 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT413)
#define _OMC_LIT414_data "Uniontype %s has type variables, but they were not given in the declaration."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT414,76,_OMC_LIT414_data);
#define _OMC_LIT414 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT414)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT415,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT414}};
#define _OMC_LIT415 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT415)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT416,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(5044)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT415}};
#define _OMC_LIT416 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT416)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT417,1,4) {&FCore_ScopeType_CLASS__SCOPE__desc,}};
#define _OMC_LIT417 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT417)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT418,1,1) {_OMC_LIT417}};
#define _OMC_LIT418 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT418)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT419,1,13) {&SCode_Restriction_R__ENUMERATION__desc,}};
#define _OMC_LIT419 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT419)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT420,1,18) {&SCode_Restriction_R__PREDEFINED__ENUMERATION__desc,}};
#define _OMC_LIT420 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT420)
#define _OMC_LIT421_data "MetaModelica complex types may not have modifiers."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT421,50,_OMC_LIT421_data);
#define _OMC_LIT421 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT421)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT422,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT421}};
#define _OMC_LIT422 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT422)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT423,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(5006)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT422}};
#define _OMC_LIT423 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT423)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT424,2,22) {&ClassInf_State_META__LIST__desc,_OMC_LIT254}};
#define _OMC_LIT424 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT424)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT425,2,23) {&ClassInf_State_META__OPTION__desc,_OMC_LIT254}};
#define _OMC_LIT425 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT425)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT426,2,21) {&ClassInf_State_META__TUPLE__desc,_OMC_LIT254}};
#define _OMC_LIT426 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT426)
#define _OMC_LIT427_data "%s uses invalid subtypeof syntax. Only subtypeof Any is supported."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT427,66,_OMC_LIT427_data);
#define _OMC_LIT427 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT427)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT428,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT427}};
#define _OMC_LIT428 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT428)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT429,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(5002)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT428}};
#define _OMC_LIT429 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT429)
#define _OMC_LIT430_data "List"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT430,4,_OMC_LIT430_data);
#define _OMC_LIT430 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT430)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT431,2,0) {_OMC_LIT430,_OMC_LIT310}};
#define _OMC_LIT431 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT431)
#define _OMC_LIT432_data "Tuple"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT432,5,_OMC_LIT432_data);
#define _OMC_LIT432 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT432)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT433,2,0) {_OMC_LIT432,_OMC_LIT314}};
#define _OMC_LIT433 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT433)
#define _OMC_LIT434_data "Array"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT434,5,_OMC_LIT434_data);
#define _OMC_LIT434 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT434)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT435,2,0) {_OMC_LIT434,_OMC_LIT318}};
#define _OMC_LIT435 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT435)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT436,2,1) {_OMC_LIT435,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT436 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT436)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT437,2,1) {_OMC_LIT433,_OMC_LIT436}};
#define _OMC_LIT437 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT437)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT438,2,1) {_OMC_LIT431,_OMC_LIT437}};
#define _OMC_LIT438 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT438)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT439,2,1) {_OMC_LIT430,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT439 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT439)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT440,2,1) {_OMC_LIT310,_OMC_LIT439}};
#define _OMC_LIT440 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT440)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT441,2,1) {_OMC_LIT312,_OMC_LIT440}};
#define _OMC_LIT441 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT441)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT442,2,1) {_OMC_LIT434,_OMC_LIT441}};
#define _OMC_LIT442 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT442)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT443,2,1) {_OMC_LIT318,_OMC_LIT442}};
#define _OMC_LIT443 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT443)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT444,2,1) {_OMC_LIT432,_OMC_LIT443}};
#define _OMC_LIT444 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT444)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT445,2,1) {_OMC_LIT314,_OMC_LIT444}};
#define _OMC_LIT445 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT445)
#define _OMC_LIT446_data "Uniontype %s has %s type variables, but got %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT446,47,_OMC_LIT446_data);
#define _OMC_LIT446 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT446)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT447,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT446}};
#define _OMC_LIT447 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT447)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT448,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(5045)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT447}};
#define _OMC_LIT448 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT448)
#define _OMC_LIT449_data "Invalid complex type name: %s"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT449,29,_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(5020)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT450}};
#define _OMC_LIT451 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT451)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT452,2,0) {_OMC_LIT314,MMC_IMMEDIATE(MMC_TAGFIXNUM(0))}};
#define _OMC_LIT452 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT452)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT453,2,0) {_OMC_LIT318,MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT453 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT453)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT454,2,0) {_OMC_LIT312,MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT454 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT454)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT455,2,0) {_OMC_LIT310,MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT455 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT455)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT456,2,1) {_OMC_LIT455,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT456 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT456)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT457,2,1) {_OMC_LIT454,_OMC_LIT456}};
#define _OMC_LIT457 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT457)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT458,2,1) {_OMC_LIT453,_OMC_LIT457}};
#define _OMC_LIT458 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT458)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT459,2,1) {_OMC_LIT452,_OMC_LIT458}};
#define _OMC_LIT459 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT459)
#define _OMC_LIT460_data "- Inst.instClassdef DERIVED( "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT460,29,_OMC_LIT460_data);
#define _OMC_LIT460 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT460)
#define _OMC_LIT461_data ") lookup failed\n ENV:"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT461,21,_OMC_LIT461_data);
#define _OMC_LIT461 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT461)
#define _OMC_LIT462_data "- Inst.instClassdef failed"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT462,26,_OMC_LIT462_data);
#define _OMC_LIT462 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT462)
#define _OMC_LIT463_data "  class :"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT463,9,_OMC_LIT463_data);
#define _OMC_LIT463 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT463)
#define _OMC_LIT464_data "Any"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT464,3,_OMC_LIT464_data);
#define _OMC_LIT464 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT464)
#define _OMC_LIT465_data "instClassdefBasicType1"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT465,22,_OMC_LIT465_data);
#define _OMC_LIT465 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT465)
#define _OMC_LIT466_data "std"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT466,3,_OMC_LIT466_data);
#define _OMC_LIT466 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT466)
#define _OMC_LIT467_data "1.x"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT467,3,_OMC_LIT467_data);
#define _OMC_LIT467 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT467)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT468,2,0) {_OMC_LIT467,MMC_IMMEDIATE(MMC_TAGFIXNUM(10))}};
#define _OMC_LIT468 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT468)
#define _OMC_LIT469_data "2.x"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT469,3,_OMC_LIT469_data);
#define _OMC_LIT469 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT469)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT470,2,0) {_OMC_LIT469,MMC_IMMEDIATE(MMC_TAGFIXNUM(20))}};
#define _OMC_LIT470 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT470)
#define _OMC_LIT471_data "3.0"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT471,3,_OMC_LIT471_data);
#define _OMC_LIT471 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT471)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT472,2,0) {_OMC_LIT471,MMC_IMMEDIATE(MMC_TAGFIXNUM(30))}};
#define _OMC_LIT472 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT472)
#define _OMC_LIT473_data "3.1"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT473,3,_OMC_LIT473_data);
#define _OMC_LIT473 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT473)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT474,2,0) {_OMC_LIT473,MMC_IMMEDIATE(MMC_TAGFIXNUM(31))}};
#define _OMC_LIT474 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT474)
#define _OMC_LIT475_data "3.2"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT475,3,_OMC_LIT475_data);
#define _OMC_LIT475 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT475)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT476,2,0) {_OMC_LIT475,MMC_IMMEDIATE(MMC_TAGFIXNUM(32))}};
#define _OMC_LIT476 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT476)
#define _OMC_LIT477_data "3.3"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT477,3,_OMC_LIT477_data);
#define _OMC_LIT477 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT477)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT478,2,0) {_OMC_LIT477,MMC_IMMEDIATE(MMC_TAGFIXNUM(33))}};
#define _OMC_LIT478 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT478)
#define _OMC_LIT479_data "3.4"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT479,3,_OMC_LIT479_data);
#define _OMC_LIT479 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT479)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT480,2,0) {_OMC_LIT479,MMC_IMMEDIATE(MMC_TAGFIXNUM(34))}};
#define _OMC_LIT480 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT480)
#define _OMC_LIT481_data "latest"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT481,6,_OMC_LIT481_data);
#define _OMC_LIT481 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT481)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT482,2,0) {_OMC_LIT481,MMC_IMMEDIATE(MMC_TAGFIXNUM(1000))}};
#define _OMC_LIT482 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT482)
#define _OMC_LIT483_data "3.5"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT483,3,_OMC_LIT483_data);
#define _OMC_LIT483 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT483)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT484,2,0) {_OMC_LIT483,MMC_IMMEDIATE(MMC_TAGFIXNUM(1035))}};
#define _OMC_LIT484 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT484)
#define _OMC_LIT485_data "experimental"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT485,12,_OMC_LIT485_data);
#define _OMC_LIT485 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT485)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT486,2,0) {_OMC_LIT485,MMC_IMMEDIATE(MMC_TAGFIXNUM(9999))}};
#define _OMC_LIT486 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT486)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT487,2,1) {_OMC_LIT486,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT487 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT487)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT488,2,1) {_OMC_LIT484,_OMC_LIT487}};
#define _OMC_LIT488 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT488)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT489,2,1) {_OMC_LIT482,_OMC_LIT488}};
#define _OMC_LIT489 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT489)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT490,2,1) {_OMC_LIT480,_OMC_LIT489}};
#define _OMC_LIT490 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT490)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT491,2,1) {_OMC_LIT478,_OMC_LIT490}};
#define _OMC_LIT491 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT491)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT492,2,1) {_OMC_LIT476,_OMC_LIT491}};
#define _OMC_LIT492 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT492)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT493,2,1) {_OMC_LIT474,_OMC_LIT492}};
#define _OMC_LIT493 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT493)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT494,2,1) {_OMC_LIT472,_OMC_LIT493}};
#define _OMC_LIT494 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT494)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT495,2,1) {_OMC_LIT470,_OMC_LIT494}};
#define _OMC_LIT495 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT495)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT496,2,1) {_OMC_LIT468,_OMC_LIT495}};
#define _OMC_LIT496 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT496)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT497,3,10) {&Flags_FlagData_ENUM__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1000)),_OMC_LIT496}};
#define _OMC_LIT497 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT497)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT498,2,1) {_OMC_LIT485,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT498 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT498)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT499,2,1) {_OMC_LIT483,_OMC_LIT498}};
#define _OMC_LIT499 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT499)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT500,2,1) {_OMC_LIT481,_OMC_LIT499}};
#define _OMC_LIT500 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT500)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT501,2,1) {_OMC_LIT479,_OMC_LIT500}};
#define _OMC_LIT501 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT501)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT502,2,1) {_OMC_LIT477,_OMC_LIT501}};
#define _OMC_LIT502 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT502)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT503,2,1) {_OMC_LIT475,_OMC_LIT502}};
#define _OMC_LIT503 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT503)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT504,2,1) {_OMC_LIT473,_OMC_LIT503}};
#define _OMC_LIT504 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT504)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT505,2,1) {_OMC_LIT469,_OMC_LIT504}};
#define _OMC_LIT505 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT505)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT506,2,1) {_OMC_LIT467,_OMC_LIT505}};
#define _OMC_LIT506 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT506)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT507,2,3) {&Flags_ValidOptions_STRING__OPTION__desc,_OMC_LIT506}};
#define _OMC_LIT507 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT507)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT508,1,1) {_OMC_LIT507}};
#define _OMC_LIT508 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT508)
#define _OMC_LIT509_data "Sets the language standard that should be used."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT509,47,_OMC_LIT509_data);
#define _OMC_LIT509 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT509)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT510,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT509}};
#define _OMC_LIT510 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT510)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT511,8,3) {&Flags_ConfigFlag_CONFIG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(8)),_OMC_LIT466,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT337,_OMC_LIT497,_OMC_LIT508,_OMC_LIT510}};
#define _OMC_LIT511 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT511)
#define _OMC_LIT512_data "Clock"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT512,5,_OMC_LIT512_data);
#define _OMC_LIT512 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT512)
#define _OMC_LIT513_data "Partial Inst Hit: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT513,18,_OMC_LIT513_data);
#define _OMC_LIT513 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT513)
#define _OMC_LIT514_data "The maximum recursion depth of %s was reached, probably due to mutual recursion. The current scope: %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT514,103,_OMC_LIT514_data);
#define _OMC_LIT514 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT514)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT515,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT514}};
#define _OMC_LIT515 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT515)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT516,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(527)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT515}};
#define _OMC_LIT516 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT516)
#define _OMC_LIT517_data "256"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT517,3,_OMC_LIT517_data);
#define _OMC_LIT517 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT517)
#define _OMC_LIT518_data "Partial Inst Add: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT518,18,_OMC_LIT518_data);
#define _OMC_LIT518 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT518)
#define _OMC_LIT519_data "- Inst.partialInstClassIn failed on class: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT519,43,_OMC_LIT519_data);
#define _OMC_LIT519 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT519)
#define _OMC_LIT520_data " in environment: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT520,17,_OMC_LIT520_data);
#define _OMC_LIT520 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT520)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT521,1,5) {&DAE_Const_C__VAR__desc,}};
#define _OMC_LIT521 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT521)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT522,1,5) {&SCode_Variability_PARAM__desc,}};
#define _OMC_LIT522 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT522)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT523,7,3) {&DAE_Attributes_ATTR__desc,_OMC_LIT388,_OMC_LIT374,_OMC_LIT522,_OMC_LIT376,_OMC_LIT368,_OMC_LIT365}};
#define _OMC_LIT523 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT523)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT524,1,4) {&DAE_Const_C__PARAM__desc,}};
#define _OMC_LIT524 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT524)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT525,1,3) {&DAE_BindingSource_BINDING__FROM__DEFAULT__VALUE__desc,}};
#define _OMC_LIT525 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT525)
#define _OMC_LIT526_data "checkModel"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT526,10,_OMC_LIT526_data);
#define _OMC_LIT526 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT526)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT527,1,3) {&Flags_FlagVisibility_INTERNAL__desc,}};
#define _OMC_LIT527 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT527)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT528,2,4) {&Flags_FlagData_BOOL__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(0))}};
#define _OMC_LIT528 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT528)
#define _OMC_LIT529_data "Set when checkModel is used to turn on specific features for checking."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT529,70,_OMC_LIT529_data);
#define _OMC_LIT529 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT529)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT530,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT529}};
#define _OMC_LIT530 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT530)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT531,8,3) {&Flags_ConfigFlag_CONFIG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(31)),_OMC_LIT526,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT527,_OMC_LIT528,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT530}};
#define _OMC_LIT531 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT531)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT532,1,4) {&Absyn_Msg_NO__MSG__desc,}};
#define _OMC_LIT532 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT532)
#define _OMC_LIT533_data "ctStateMachines"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT533,15,_OMC_LIT533_data);
#define _OMC_LIT533 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT533)
#define _OMC_LIT534_data "Experimental: Enable continuous-time state machine prototype"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT534,60,_OMC_LIT534_data);
#define _OMC_LIT534 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT534)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT535,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT534}};
#define _OMC_LIT535 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT535)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT536,8,3) {&Flags_ConfigFlag_CONFIG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(94)),_OMC_LIT533,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT527,_OMC_LIT528,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT535}};
#define _OMC_LIT536 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT536)
#define _OMC_LIT537_data "Component %s of variability %s has binding %s of higher variability %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT537,71,_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,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(130)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT538}};
#define _OMC_LIT539 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT539)
#define _OMC_LIT540_data "PARAM"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT540,5,_OMC_LIT540_data);
#define _OMC_LIT540 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT540)
#define _OMC_LIT541_data "VAR"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT541,3,_OMC_LIT541_data);
#define _OMC_LIT541 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT541)
#define _OMC_LIT542_data "builtin attribute "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT542,18,_OMC_LIT542_data);
#define _OMC_LIT542 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT542)
#define _OMC_LIT543_data " of type "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT543,9,_OMC_LIT543_data);
#define _OMC_LIT543 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT543)
#define _OMC_LIT544_data "Wrong type on %s, expected %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT544,30,_OMC_LIT544_data);
#define _OMC_LIT544 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT544)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT545,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT544}};
#define _OMC_LIT545 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT545)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT546,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(53)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT545}};
#define _OMC_LIT546 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT546)
#define _OMC_LIT547_data "instBuiltinAttribute failed for: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT547,33,_OMC_LIT547_data);
#define _OMC_LIT547 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT547)
#define _OMC_LIT548_data " value binding: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT548,16,_OMC_LIT548_data);
#define _OMC_LIT548 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT548)
#define _OMC_LIT549_data " binding: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT549,10,_OMC_LIT549_data);
#define _OMC_LIT549 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT549)
#define _OMC_LIT550_data " expected type: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT550,16,_OMC_LIT550_data);
#define _OMC_LIT550 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT550)
#define _OMC_LIT551_data " type props: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT551,13,_OMC_LIT551_data);
#define _OMC_LIT551 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT551)
#define _OMC_LIT552_data " value binding: NONE()"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT552,22,_OMC_LIT552_data);
#define _OMC_LIT552 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT552)
#define _OMC_LIT553_data "- Inst.instBasicTypeAttributes2 failed on "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT553,42,_OMC_LIT553_data);
#define _OMC_LIT553 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT553)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT554,2,5) {&DAE_Type_T__STRING__desc,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT554 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT554)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT555,2,6) {&DAE_Type_T__BOOL__desc,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT555 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT555)
#define _OMC_LIT556_data "Modified element %s not found in class %s."
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,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT556}};
#define _OMC_LIT557 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT557)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT558,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(214)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT557}};
#define _OMC_LIT558 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT558)
#define _OMC_LIT559_data "enumeration(:)"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT559,14,_OMC_LIT559_data);
#define _OMC_LIT559 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT559)
#define _OMC_LIT560_data "quantity"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT560,8,_OMC_LIT560_data);
#define _OMC_LIT560 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT560)
#define _OMC_LIT561_data "start"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT561,5,_OMC_LIT561_data);
#define _OMC_LIT561 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT561)
#define _OMC_LIT562_data "fixed"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT562,5,_OMC_LIT562_data);
#define _OMC_LIT562 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT562)
#define _OMC_LIT563_data "given"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT563,5,_OMC_LIT563_data);
#define _OMC_LIT563 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT563)
#define _OMC_LIT564_data "sought"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT564,6,_OMC_LIT564_data);
#define _OMC_LIT564 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT564)
#define _OMC_LIT565_data "refine"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT565,6,_OMC_LIT565_data);
#define _OMC_LIT565 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT565)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT566,2,1) {_OMC_LIT565,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT566 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT566)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT567,2,1) {_OMC_LIT564,_OMC_LIT566}};
#define _OMC_LIT567 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT567)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT568,2,1) {_OMC_LIT563,_OMC_LIT567}};
#define _OMC_LIT568 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT568)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT569,1,1) {MMC_IMMEDIATE(MMC_TAGFIXNUM(1))}};
#define _OMC_LIT569 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT569)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT570,6,8) {&DAE_Type_T__ENUMERATION__desc,_OMC_LIT569,_OMC_LIT254,_OMC_LIT568,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT570 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT570)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT571,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT563,_OMC_LIT523,_OMC_LIT570,_OMC_LIT257,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT571 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT571)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT572,1,1) {MMC_IMMEDIATE(MMC_TAGFIXNUM(2))}};
#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_LIT254,_OMC_LIT568,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_LIT564,_OMC_LIT523,_OMC_LIT573,_OMC_LIT257,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(3))}};
#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_LIT254,_OMC_LIT568,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_LIT565,_OMC_LIT523,_OMC_LIT576,_OMC_LIT257,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT577 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT577)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT578,2,1) {_OMC_LIT577,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT578 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT578)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT579,2,1) {_OMC_LIT574,_OMC_LIT578}};
#define _OMC_LIT579 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT579)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT580,2,1) {_OMC_LIT571,_OMC_LIT579}};
#define _OMC_LIT580 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT580)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT581,6,8) {&DAE_Type_T__ENUMERATION__desc,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT254,_OMC_LIT568,_OMC_LIT580,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT581 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT581)
#define _OMC_LIT582_data "Distribution"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT582,12,_OMC_LIT582_data);
#define _OMC_LIT582 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT582)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT583,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT582}};
#define _OMC_LIT583 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT583)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT584,2,6) {&ClassInf_State_RECORD__desc,_OMC_LIT583}};
#define _OMC_LIT584 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT584)
#define _OMC_LIT585_data "name"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT585,4,_OMC_LIT585_data);
#define _OMC_LIT585 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT585)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT586,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT585,_OMC_LIT523,_OMC_LIT554,_OMC_LIT257,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT586 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT586)
#define _OMC_LIT587_data "params"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT587,6,_OMC_LIT587_data);
#define _OMC_LIT587 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT587)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT588,2,4) {&DAE_Type_T__REAL__desc,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT588 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT588)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT589,1,7) {&DAE_Dimension_DIM__UNKNOWN__desc,}};
#define _OMC_LIT589 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT589)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT590,2,1) {_OMC_LIT589,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT590 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT590)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT591,3,9) {&DAE_Type_T__ARRAY__desc,_OMC_LIT588,_OMC_LIT590}};
#define _OMC_LIT591 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT591)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT592,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT587,_OMC_LIT523,_OMC_LIT591,_OMC_LIT257,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT592 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT592)
#define _OMC_LIT593_data "paramNames"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT593,10,_OMC_LIT593_data);
#define _OMC_LIT593 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT593)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT594,3,9) {&DAE_Type_T__ARRAY__desc,_OMC_LIT554,_OMC_LIT590}};
#define _OMC_LIT594 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT594)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT595,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT593,_OMC_LIT523,_OMC_LIT594,_OMC_LIT257,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT595 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT595)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT596,2,1) {_OMC_LIT595,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT596 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT596)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT597,2,1) {_OMC_LIT592,_OMC_LIT596}};
#define _OMC_LIT597 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT597)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT598,2,1) {_OMC_LIT586,_OMC_LIT597}};
#define _OMC_LIT598 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT598)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT599,4,12) {&DAE_Type_T__COMPLEX__desc,_OMC_LIT584,_OMC_LIT598,MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT599 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT599)
#define _OMC_LIT600_data "nominal"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT600,7,_OMC_LIT600_data);
#define _OMC_LIT600 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT600)
#define _OMC_LIT601_data "uncertain"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT601,9,_OMC_LIT601_data);
#define _OMC_LIT601 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT601)
#define _OMC_LIT602_data "distribution"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT602,12,_OMC_LIT602_data);
#define _OMC_LIT602 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT602)
#define _OMC_LIT603_data "never"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT603,5,_OMC_LIT603_data);
#define _OMC_LIT603 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT603)
#define _OMC_LIT604_data "avoid"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT604,5,_OMC_LIT604_data);
#define _OMC_LIT604 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT604)
#define _OMC_LIT605_data "default"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT605,7,_OMC_LIT605_data);
#define _OMC_LIT605 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT605)
#define _OMC_LIT606_data "prefer"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT606,6,_OMC_LIT606_data);
#define _OMC_LIT606 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT606)
#define _OMC_LIT607_data "always"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT607,6,_OMC_LIT607_data);
#define _OMC_LIT607 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT607)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT608,2,1) {_OMC_LIT607,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT608 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT608)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT609,2,1) {_OMC_LIT606,_OMC_LIT608}};
#define _OMC_LIT609 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT609)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT610,2,1) {_OMC_LIT605,_OMC_LIT609}};
#define _OMC_LIT610 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT610)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT611,2,1) {_OMC_LIT604,_OMC_LIT610}};
#define _OMC_LIT611 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT611)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT612,2,1) {_OMC_LIT603,_OMC_LIT611}};
#define _OMC_LIT612 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT612)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT613,6,8) {&DAE_Type_T__ENUMERATION__desc,_OMC_LIT569,_OMC_LIT254,_OMC_LIT612,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT613 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT613)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT614,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT603,_OMC_LIT523,_OMC_LIT613,_OMC_LIT257,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT614 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT614)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT615,6,8) {&DAE_Type_T__ENUMERATION__desc,_OMC_LIT572,_OMC_LIT254,_OMC_LIT612,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT615 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT615)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT616,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT604,_OMC_LIT523,_OMC_LIT615,_OMC_LIT257,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT616 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT616)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT617,6,8) {&DAE_Type_T__ENUMERATION__desc,_OMC_LIT575,_OMC_LIT254,_OMC_LIT612,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT617 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT617)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT618,7,3) {&DAE_Var_TYPES__VAR__desc,_OMC_LIT605,_OMC_LIT523,_OMC_LIT617,_OMC_LIT257,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT618 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT618)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT619,1,1) {MMC_IMMEDIATE(MMC_TAGFIXNUM(4))}};
#define _OMC_LIT619 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT619)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT620,6,8) {&DAE_Type_T__ENUMERATION__desc,_OMC_LIT619,_OMC_LIT254,_OMC_LIT612,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_LIT606,_OMC_LIT523,_OMC_LIT620,_OMC_LIT257,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(5))}};
#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_LIT254,_OMC_LIT612,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_LIT607,_OMC_LIT523,_OMC_LIT623,_OMC_LIT257,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_REFSTRUCTLIT(mmc_none)}};
#define _OMC_LIT624 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT624)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT625,2,1) {_OMC_LIT624,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT625 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT625)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT626,2,1) {_OMC_LIT621,_OMC_LIT625}};
#define _OMC_LIT626 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT626)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT627,2,1) {_OMC_LIT618,_OMC_LIT626}};
#define _OMC_LIT627 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT627)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT628,2,1) {_OMC_LIT616,_OMC_LIT627}};
#define _OMC_LIT628 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT628)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT629,2,1) {_OMC_LIT614,_OMC_LIT628}};
#define _OMC_LIT629 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT629)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT630,6,8) {&DAE_Type_T__ENUMERATION__desc,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT254,_OMC_LIT612,_OMC_LIT629,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT630 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT630)
#define _OMC_LIT631_data "unit"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT631,4,_OMC_LIT631_data);
#define _OMC_LIT631 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT631)
#define _OMC_LIT632_data "displayUnit"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT632,11,_OMC_LIT632_data);
#define _OMC_LIT632 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT632)
#define _OMC_LIT633_data "stateSelect"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT633,11,_OMC_LIT633_data);
#define _OMC_LIT633 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT633)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT634,2,3) {&DAE_Type_T__INTEGER__desc,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT634 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT634)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT635,2,7) {&DAE_Type_T__CLOCK__desc,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT635 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT635)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT636,6,8) {&DAE_Type_T__ENUMERATION__desc,MMC_REFSTRUCTLIT(mmc_none),_OMC_LIT254,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT636 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT636)
#define _OMC_LIT637_data "instClassParts"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT637,14,_OMC_LIT637_data);
#define _OMC_LIT637 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT637)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT638,1,6) {&DAE_BindingSource_BINDING__FROM__DERIVED__RECORD__DECL__desc,}};
#define _OMC_LIT638 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT638)
#define _OMC_LIT639_data "Internal error %s"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT639,17,_OMC_LIT639_data);
#define _OMC_LIT639 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT639)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT640,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT639}};
#define _OMC_LIT640 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT640)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT641,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(63)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT640}};
#define _OMC_LIT641 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT641)
#define _OMC_LIT642_data "Unexpected Mod structure in collectAndFixDerivedComplexOutsideBindings."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT642,71,_OMC_LIT642_data);
#define _OMC_LIT642 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT642)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT643,2,1) {_OMC_LIT642,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT643 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT643)
#define _OMC_LIT644_data "Full Inst Hit: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT644,15,_OMC_LIT644_data);
#define _OMC_LIT644 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT644)
#define _OMC_LIT645_data "Full Inst Add: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT645,15,_OMC_LIT645_data);
#define _OMC_LIT645 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT645)
#define _OMC_LIT646_data "- Inst.instClassIn2 failed on class: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT646,37,_OMC_LIT646_data);
#define _OMC_LIT646 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT646)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT647,1,5) {&ErrorTypes_Severity_WARNING__desc,}};
#define _OMC_LIT647 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT647)
#define _OMC_LIT648_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_STRUCT648,147,_OMC_LIT648_data);
#define _OMC_LIT648 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT648)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT649,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT648}};
#define _OMC_LIT649 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT649)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT650,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(532)),_OMC_LIT259,_OMC_LIT647,_OMC_LIT649}};
#define _OMC_LIT650 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT650)
#define _OMC_LIT651_data "Forcing full instantiation of partial class %s during checkModel."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT651,65,_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(134)),_OMC_LIT259,_OMC_LIT647,_OMC_LIT652}};
#define _OMC_LIT653 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT653)
#define _OMC_LIT654_data "Illegal to instantiate partial class %s."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT654,40,_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(38)),_OMC_LIT259,_OMC_LIT260,_OMC_LIT655}};
#define _OMC_LIT656 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT656)
#define _OMC_LIT657_data "- Inst.instClass: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT657,18,_OMC_LIT657_data);
#define _OMC_LIT657 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT657)
#define _OMC_LIT658_data " in env: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT658,9,_OMC_LIT658_data);
#define _OMC_LIT658 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT658)
#define _OMC_LIT659_data " failed\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT659,8,_OMC_LIT659_data);
#define _OMC_LIT659 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT659)
#define _OMC_LIT660_data "Inst.instClassInProgram failed\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT660,31,_OMC_LIT660_data);
#define _OMC_LIT660 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT660)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT661,1,4) {&DAE_ComponentPrefix_NOCOMPPRE__desc,}};
#define _OMC_LIT661 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT661)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT662,8,3) {&DAE_ElementSource_SOURCE__desc,_OMC_LIT266,MMC_REFSTRUCTLIT(mmc_nil),_OMC_LIT661,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT662 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT662)
#define _OMC_LIT663_data ". The compiler got into Stack Overflow!"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT663,39,_OMC_LIT663_data);
#define _OMC_LIT663 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT663)
#define _OMC_LIT664_data "FrontEnd - scodeFlatten"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT664,23,_OMC_LIT664_data);
#define _OMC_LIT664 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT664)
#define _OMC_LIT665_data "GC stats after pre-frontend work (building graphs):"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT665,51,_OMC_LIT665_data);
#define _OMC_LIT665 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT665)
#define _OMC_LIT666_data "\n  "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT666,3,_OMC_LIT666_data);
#define _OMC_LIT666 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT666)
#define _OMC_LIT667_data "gcProfiling"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT667,11,_OMC_LIT667_data);
#define _OMC_LIT667 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT667)
#define _OMC_LIT668_data "Prints garbage collection stats to standard output."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT668,51,_OMC_LIT668_data);
#define _OMC_LIT668 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT668)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT669,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT668}};
#define _OMC_LIT669 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT669)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT670,5,3) {&Flags_DebugFlag_DEBUG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(13)),_OMC_LIT667,MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),_OMC_LIT669}};
#define _OMC_LIT670 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT670)
#define _OMC_LIT671_data "FrontEnd - mkProgramGraph"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT671,25,_OMC_LIT671_data);
#define _OMC_LIT671 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT671)
#include "util/modelica.h"
#include "Inst_includes.h"
#if !defined(PROTECTED_FUNCTION_STATIC)
#define PROTECTED_FUNCTION_STATIC
#endif
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_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_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 *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)
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 tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
_env = __omcQ_24in_5Fenv;
tmpMeta[0] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[1] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClass(threadData, _cache, _env, tmpMeta[0], _OMC_LIT0, _OMC_LIT1, _OMC_LIT2, _classElem, tmpMeta[1], 1, _OMC_LIT3, _OMC_LIT4, _OMC_LIT8 ,&_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 tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_dae = _OMC_LIT9;
_comment = mmc_mk_none();
_mod = _OMC_LIT10;
if((!omc_ClassInf_isFunction(threadData, _state)))
{
goto _return;
}
{
modelica_metatype _cmt;
for (tmpMeta[0] = _comments; !listEmpty(tmpMeta[0]); tmpMeta[0]=MMC_CDR(tmpMeta[0]))
{
_cmt = MMC_CAR(tmpMeta[0]);
if(isNone(_comment))
{
_comment = (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_cmt), 3)));
}
{
modelica_metatype tmp3_1;
tmp3_1 = _cmt;
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
if (optionNone(tmpMeta[2])) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 1));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
_mod2 = tmpMeta[4];
tmpMeta[1] = omc_SCodeUtil_mergeModifiers(threadData, _mod2, _mod);
goto tmp2_done;
}
case 1: {
tmpMeta[1] = _mod;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_mod = tmpMeta[1];
}
}
{
modelica_metatype tmp7_1;
tmp7_1 = _mod;
{
volatile mmc_switch_type tmp7;
int tmp8;
tmp7 = 0;
for (; tmp7 < 2; tmp7++) {
switch (MMC_SWITCH_CAST(tmp7)) {
case 0: {
modelica_boolean tmp9;
if (mmc__uniontype__metarecord__typedef__equal(tmp7_1,2,0) == 0) goto tmp6_end;
tmp9 = (modelica_boolean)isNone(_comment);
if(tmp9)
{
tmpMeta[5] = _dae;
}
else
{
tmpMeta[2] = mmc_mk_box3(3, &SCode_Comment_COMMENT__desc, mmc_mk_none(), _comment);
tmpMeta[3] = mmc_mk_box2(33, &DAE_Element_COMMENT__desc, tmpMeta[2]);
tmpMeta[1] = mmc_mk_cons(tmpMeta[3], MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[4] = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta[1]);
tmpMeta[5] = tmpMeta[4];
}
tmpMeta[0] = tmpMeta[5];
goto tmp6_done;
}
case 1: {
tmpMeta[2] = mmc_mk_box2(3, &SCode_Annotation_ANNOTATION__desc, _mod);
tmpMeta[3] = mmc_mk_box3(3, &SCode_Comment_COMMENT__desc, mmc_mk_some(tmpMeta[2]), _comment);
tmpMeta[4] = mmc_mk_box2(33, &DAE_Element_COMMENT__desc, tmpMeta[3]);
tmpMeta[1] = mmc_mk_cons(tmpMeta[4], MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[5] = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta[1]);
tmpMeta[0] = tmpMeta[5];
goto tmp6_done;
}
}
goto tmp6_end;
tmp6_end: ;
}
goto goto_5;
goto_5:;
MMC_THROW_INTERNAL();
goto tmp6_done;
tmp6_done:;
}
}
_dae = tmpMeta[0];
_return: OMC_LABEL_UNUSED
return _dae;
}
PROTECTED_FUNCTION_STATIC void omc_Inst_showCacheInfo(threadData_t *threadData, modelica_string _inMsg, modelica_metatype _inPath)
{
modelica_metatype tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
if(omc_Flags_isSet(threadData, _OMC_LIT16))
{
tmpMeta[0] = stringAppend(_inMsg,omc_AbsynUtil_pathString(threadData, _inPath, _OMC_LIT11, 1, 0));
tmpMeta[1] = stringAppend(tmpMeta[0],_OMC_LIT12);
fputs(MMC_STRINGDATA(tmpMeta[1]),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_LIT17, 0, 1);
goto tmp2_done;
}
case 1: {
_str = _OMC_LIT5;
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 tmpMeta[1] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_name = omc_StringUtil_stringAppend9(threadData, omc_InstTypes_callingScopeStr(threadData, _callScope), _OMC_LIT17, omc_SCodeDump_restrString(threadData, omc_SCodeUtil_getClassRestriction(threadData, _cls)), _OMC_LIT17, omc_Inst_generatePrefixStr(threadData, _prefix), _OMC_LIT17, _OMC_LIT5, _OMC_LIT5, _OMC_LIT5);
tmpMeta[0] = mmc_mk_box2(4, &Absyn_Path_IDENT__desc, _name);
_cachePath = omc_AbsynUtil_joinPaths(threadData, tmpMeta[0], 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 tmpMeta[9] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_cache = __omcQ_24in_5Fcache;
_env = __omcQ_24in_5Fenv;
tmp1 = omc_Flags_isSet(threadData, _OMC_LIT21);
if (1 != tmp1) MMC_THROW_INTERNAL();
tmpMeta[0] = omc_FNode_refData(threadData, _ref);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],3,5) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],2,8) == 0) MMC_THROW_INTERNAL();
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 4));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 6));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 3));
_cls = tmpMeta[1];
_enc = tmpMeta[2];
_res = tmpMeta[3];
_prefix = tmpMeta[4];
_env2 = omc_FGraph_openScope(threadData, _env, _enc, _name, omc_FGraph_restrictionToScopeType(threadData, _res));
{
{
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_boolean tmp6;
_cache_path = omc_Inst_generateCachePath(threadData, _env2, _cls, _prefix, _OMC_LIT22);
tmpMeta[0] = omc_InstHashTable_get(threadData, _cache_path);
if (listEmpty(tmpMeta[0])) goto goto_2;
tmpMeta[1] = MMC_CAR(tmpMeta[0]);
tmpMeta[2] = MMC_CDR(tmpMeta[0]);
if (optionNone(tmpMeta[1])) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],0,2) == 0) goto goto_2;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 3));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 1));
if (listEmpty(tmpMeta[2])) goto goto_2;
tmpMeta[7] = MMC_CAR(tmpMeta[2]);
tmpMeta[8] = MMC_CDR(tmpMeta[2]);
if (!listEmpty(tmpMeta[8])) goto goto_2;
_inputs = tmpMeta[4];
_env = tmpMeta[6];
tmpMeta[0] = _inputs;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
_prefix2 = tmpMeta[1];
tmp6 = (omc_PrefixUtil_isPrefix(threadData, _prefix) && omc_PrefixUtil_isPrefix(threadData, _prefix2));
if (1 != tmp6) goto goto_2;
goto tmp3_done;
}
case 1: {
_env = omc_FGraph_pushScopeRef(threadData, _env, _ref);
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_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 tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp3_1;
tmp3_1 = _ident;
{
int tmp3;
{
switch (MMC_SWITCH_CAST(stringHashDjb2Mod(tmp3_1,8192))) {
case 7323 /* abs */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT23), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT25;
goto tmp2_done;
}
case 5163 /* acos */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT26), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT28;
goto tmp2_done;
}
case 7234 /* activeState */: {
if (11 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT29), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT31;
goto tmp2_done;
}
case 5611 /* actualStream */: {
if (12 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT32), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT34;
goto tmp2_done;
}
case 6000 /* asin */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT35), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT37;
goto tmp2_done;
}
case 6825 /* atan */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT38), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT40;
goto tmp2_done;
}
case 4091 /* atan2 */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT41), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT43;
goto tmp2_done;
}
case 7192 /* backSample */: {
if (10 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT44), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT46;
goto tmp2_done;
}
case 2073 /* cardinality */: {
if (11 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT47), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT49;
goto tmp2_done;
}
case 1277 /* cat */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT50), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT52;
goto tmp2_done;
}
case 5282 /* ceil */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT53), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT55;
goto tmp2_done;
}
case 459 /* change */: {
if (6 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT56), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT58;
goto tmp2_done;
}
case 3184 /* classDirectory */: {
if (14 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT59), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT61;
goto tmp2_done;
}
case 1738 /* cos */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT62), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT64;
goto tmp2_done;
}
case 114 /* cosh */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT65), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT67;
goto tmp2_done;
}
case 1199 /* cross */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT68), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT70;
goto tmp2_done;
}
case 3380 /* delay */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT71), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT73;
goto tmp2_done;
}
case 2496 /* der */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT74), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT76;
goto tmp2_done;
}
case 7396 /* diagonal */: {
if (8 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT77), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT79;
goto tmp2_done;
}
case 2632 /* div */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT80), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT82;
goto tmp2_done;
}
case 2266 /* edge */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT83), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT85;
goto tmp2_done;
}
case 4210 /* exp */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT86), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT88;
goto tmp2_done;
}
case 2860 /* fill */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT89), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT91;
goto tmp2_done;
}
case 1464 /* firstTick */: {
if (9 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT92), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT94;
goto tmp2_done;
}
case 871 /* floor */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT95), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT97;
goto tmp2_done;
}
case 1243 /* getInstanceName */: {
if (15 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT98), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT100;
goto tmp2_done;
}
case 7532 /* hold */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT101), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT103;
goto tmp2_done;
}
case 3236 /* homotopy */: {
if (8 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT104), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT106;
goto tmp2_done;
}
case 3759 /* identity */: {
if (8 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT107), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT109;
goto tmp2_done;
}
case 6568 /* inStream */: {
if (8 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT110), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT112;
goto tmp2_done;
}
case 4655 /* initial */: {
if (7 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT113), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT115;
goto tmp2_done;
}
case 336 /* initialState */: {
if (12 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT116), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT118;
goto tmp2_done;
}
case 7699 /* integer */: {
if (7 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT119), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT121;
goto tmp2_done;
}
case 3882 /* interval */: {
if (8 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT122), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT124;
goto tmp2_done;
}
case 5062 /* intAbs */: {
if (6 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT125), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT127;
goto tmp2_done;
}
case 3956 /* linspace */: {
if (8 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT128), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT130;
goto tmp2_done;
}
case 3335 /* log */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT131), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT133;
goto tmp2_done;
}
case 4424 /* log10 */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT134), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT136;
goto tmp2_done;
}
case 2330 /* matrix */: {
if (6 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT137), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT139;
goto tmp2_done;
}
case 3979 /* max */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT140), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT142;
goto tmp2_done;
}
case 4233 /* min */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT143), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT145;
goto tmp2_done;
}
case 4421 /* mod */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT146), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT148;
goto tmp2_done;
}
case 2720 /* ndims */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT149), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT151;
goto tmp2_done;
}
case 7726 /* noClock */: {
if (7 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT152), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT154;
goto tmp2_done;
}
case 484 /* noEvent */: {
if (7 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT155), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT157;
goto tmp2_done;
}
case 3834 /* ones */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT158), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT160;
goto tmp2_done;
}
case 1429 /* outerProduct */: {
if (12 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT161), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT163;
goto tmp2_done;
}
case 7788 /* pre */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT164), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT166;
goto tmp2_done;
}
case 2274 /* previous */: {
if (8 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT167), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT169;
goto tmp2_done;
}
case 2322 /* print */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT170), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT172;
goto tmp2_done;
}
case 7750 /* product */: {
if (7 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT173), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT175;
goto tmp2_done;
}
case 5695 /* realAbs */: {
if (7 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT176), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT178;
goto tmp2_done;
}
case 1353 /* rem */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT179), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT181;
goto tmp2_done;
}
case 5458 /* rooted */: {
if (6 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT182), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT184;
goto tmp2_done;
}
case 7687 /* sample */: {
if (6 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT185), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT187;
goto tmp2_done;
}
case 2075 /* scalar */: {
if (6 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT188), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT190;
goto tmp2_done;
}
case 4750 /* semilinear */: {
if (10 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT191), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT193;
goto tmp2_done;
}
case 293 /* shiftSample */: {
if (11 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT194), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT196;
goto tmp2_done;
}
case 2934 /* sign */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT197), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT199;
goto tmp2_done;
}
case 2575 /* sin */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT200), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT202;
goto tmp2_done;
}
case 3159 /* sinh */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT203), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT205;
goto tmp2_done;
}
case 3552 /* size */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT206), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT208;
goto tmp2_done;
}
case 5055 /* skew */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT209), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT211;
goto tmp2_done;
}
case 6559 /* smooth */: {
if (6 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT212), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT214;
goto tmp2_done;
}
case 4211 /* spatialDistribution */: {
if (19 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT215), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT217;
goto tmp2_done;
}
case 3823 /* sqrt */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT218), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT220;
goto tmp2_done;
}
case 8177 /* subSample */: {
if (9 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT221), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT223;
goto tmp2_done;
}
case 4322 /* symmetric */: {
if (9 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT224), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT226;
goto tmp2_done;
}
case 3400 /* tan */: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT227), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT229;
goto tmp2_done;
}
case 5808 /* tanh */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT230), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT232;
goto tmp2_done;
}
case 4961 /* terminal */: {
if (8 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT233), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT235;
goto tmp2_done;
}
case 2651 /* ticksInState */: {
if (12 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT236), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT238;
goto tmp2_done;
}
case 3084 /* timeInState */: {
if (11 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT239), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT241;
goto tmp2_done;
}
case 3952 /* transition */: {
if (10 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT242), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT244;
goto tmp2_done;
}
case 6500 /* transpose */: {
if (9 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT245), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT247;
goto tmp2_done;
}
case 3992 /* vector */: {
if (6 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT248), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT250;
goto tmp2_done;
}
case 920 /* zeros */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT251), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT253;
goto tmp2_done;
}
default:
tmp2_default: OMC_LABEL_UNUSED; {
{
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: {
if (mmc__uniontype__metarecord__typedef__equal(tmp6_1,1,1) == 0) goto tmp5_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp6_1), 2));
if (0 != MMC_STRLEN(tmpMeta[2]) || strcmp(MMC_STRINGDATA(_OMC_LIT5), MMC_STRINGDATA(tmpMeta[2])) != 0) goto tmp5_end;
tmpMeta[2] = mmc_mk_box2(4, &Absyn_Path_IDENT__desc, _ident);
tmpMeta[1] = tmpMeta[2];
goto tmp5_done;
}
case 1: {
tmpMeta[1] = _cachedPath;
goto tmp5_done;
}
}
goto tmp5_end;
tmp5_end: ;
}
goto goto_4;
goto_4:;
goto goto_1;
goto tmp5_done;
tmp5_done:;
}
}tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_path = tmpMeta[0];
_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 tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_oscope = omc_FGraph_getScopePath(threadData, _env);
if(isNone(_oscope))
{
_path = omc_Inst_makeFullyQualified2Builtin(threadData, _name, _cachedPath);
}
else
{
tmpMeta[0] = _oscope;
if (optionNone(tmpMeta[0])) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 1));
_scope = tmpMeta[1];
{
modelica_metatype tmp3_1;
tmp3_1 = _cachedPath;
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,1) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
if (0 != MMC_STRLEN(tmpMeta[1]) || strcmp(MMC_STRINGDATA(_OMC_LIT5), MMC_STRINGDATA(tmpMeta[1])) != 0) goto tmp2_end;
tmpMeta[1] = mmc_mk_box2(4, &Absyn_Path_IDENT__desc, _name);
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 1: {
tmpMeta[0] = _cachedPath;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_path = omc_AbsynUtil_joinPaths(threadData, _scope, tmpMeta[0]);
}
_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 tmpMeta[4] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _inCache;
_outEnv = _inEnv;
_outIH = _inIH;
_outUpdatedComps = _inUpdatedComps;
{
modelica_metatype _cr;
for (tmpMeta[0] = _crefs; !listEmpty(tmpMeta[0]); tmpMeta[0]=MMC_CDR(tmpMeta[0]))
{
_cr = MMC_CAR(tmpMeta[0]);
{
{
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;
tmpMeta[1] = _cr;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],2,2) == 0) goto goto_1;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 3));
if (!listEmpty(tmpMeta[3])) goto goto_1;
_name = tmpMeta[2];
omc_Lookup_lookupIdentLocal(threadData, _outCache, _outEnv, _name, &tmpMeta[1], NULL, NULL, NULL, NULL);
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 5));
_binding = tmpMeta[2];
tmp5 = omc_DAEUtil_isBound(threadData, _binding);
if (1 != tmp5) goto goto_1;
goto tmp2_done;
}
case 1: {
_outCache = omc_Inst_updateComponentInEnv(threadData, _outCache, _outEnv, _outIH, _pre, _mod, _cr, _ci_state, _impl, _outUpdatedComps, _currentCref ,&_outEnv ,&_outIH ,&_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_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[11] __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: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_6,2,2) == 0) goto tmp3_end;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_6), 2));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 2));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 3));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 4));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 5));
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 6));
_c1 = tmp4_6;
_n = tmpMeta[5];
_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 = tmpMeta[6];
_ct = tmpMeta[7];
_prl1 = tmpMeta[8];
_var1 = tmpMeta[9];
_dir = tmpMeta[10];
_inst_dims = tmp4_10;
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT255);
_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);
tmpMeta[5] = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, _n);
_cache = omc_Mod_elabMod(threadData, _cache, _env, _ih, _pre, _smod, _impl, tmpMeta[5], _info ,&_m);
_cenv = omc_FGraph_createVersionScope(threadData, _env, _n, _pre, _m, _cenv, _c, _ih ,&_c ,&_ih);
tmpMeta[5] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_InstVar_instVar(threadData, _cache, _cenv, _ih, _store, _state, _m, _pre, _n, _c, _attr, _inPrefixes, _dims, tmpMeta[5], _inst_dims, 1, _OMC_LIT256, _info, _OMC_LIT4, _OMC_LIT8, _env ,&_compenv ,&_ih ,&_store ,NULL ,NULL ,&_ty ,NULL);
_io = omc_SCodeUtil_prefixesInnerOuter(threadData, _inPrefixes);
_vis = omc_SCodeUtil_prefixesVisibility(threadData, _inPrefixes);
tmpMeta[5] = mmc_mk_box7(3, &DAE_Attributes_ATTR__desc, omc_DAEUtil_toConnectorTypeNoState(threadData, _ct, mmc_mk_none()), _prl1, _var1, _dir, _io, _vis);
tmpMeta[6] = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _n, tmpMeta[5], _ty, _OMC_LIT257, mmc_mk_boolean(0), mmc_mk_none());
_new_var = tmpMeta[6];
_env = omc_FGraph_updateComp(threadData, _env, _new_var, _OMC_LIT258, _compenv);
omc_ErrorExt_rollBack(threadData, _OMC_LIT255);
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_LIT255);
goto goto_2;
goto tmp3_done;
}
case 3: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_6,2,2) == 0) goto tmp3_end;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_6), 2));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 2));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 3));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 4));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 5));
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 6));
_c1 = tmp4_6;
_n = tmpMeta[5];
_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 = tmpMeta[6];
_ct = tmpMeta[7];
_prl1 = tmpMeta[8];
_var1 = tmpMeta[9];
_dir = tmpMeta[10];
_inst_dims = tmp4_10;
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT255);
_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);
tmpMeta[5] = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, _n);
_cache = omc_Mod_elabMod(threadData, _cache, _env, _ih, _pre, _smod, _impl, tmpMeta[5], _info ,&_m);
_cenv = omc_FGraph_createVersionScope(threadData, _env, _n, _pre, _m, _cenv, _c, _ih ,&_c ,&_ih);
tmpMeta[5] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_InstVar_instVar(threadData, _cache, _cenv, _ih, _store, _state, _m, _pre, _n, _c, _attr, _inPrefixes, _dims, tmpMeta[5], _inst_dims, 1, _OMC_LIT256, _info, _OMC_LIT4, _OMC_LIT8, _env ,&_compenv ,&_ih ,&_store ,NULL ,NULL ,&_ty ,NULL);
_io = omc_SCodeUtil_prefixesInnerOuter(threadData, _inPrefixes);
_vis = omc_SCodeUtil_prefixesVisibility(threadData, _inPrefixes);
tmpMeta[5] = mmc_mk_box7(3, &DAE_Attributes_ATTR__desc, omc_DAEUtil_toConnectorTypeNoState(threadData, _ct, mmc_mk_none()), _prl1, _var1, _dir, _io, _vis);
tmpMeta[6] = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _n, tmpMeta[5], _ty, _OMC_LIT257, mmc_mk_boolean(0), mmc_mk_none());
_new_var = tmpMeta[6];
_env = omc_FGraph_updateComp(threadData, _env, _new_var, _OMC_LIT258, _compenv);
omc_ErrorExt_rollBack(threadData, _OMC_LIT255);
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_LIT255);
goto goto_2;
goto tmp3_done;
}
case 5: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_6,2,2) == 0) goto tmp3_end;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_6), 2));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 2));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 3));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 4));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 5));
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 6));
_c1 = tmp4_6;
_n = tmpMeta[5];
_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 = tmpMeta[6];
_ct = tmpMeta[7];
_prl1 = tmpMeta[8];
_var1 = tmpMeta[9];
_dir = tmpMeta[10];
_inst_dims = tmp4_10;
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT255);
_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);
tmpMeta[5] = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, _n);
_cache = omc_Mod_elabMod(threadData, _cache, _env, _ih, _pre, _smod, _impl, tmpMeta[5], _info ,&_m);
_cenv = omc_FGraph_createVersionScope(threadData, _env, _n, _pre, _m, _cenv, _c, _ih ,&_c ,&_ih);
tmpMeta[5] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_InstVar_instVar(threadData, _cache, _cenv, _ih, _store, _state, _m, _pre, _n, _c, _attr, _inPrefixes, _dims, tmpMeta[5], _inst_dims, 1, _OMC_LIT256, _info, _OMC_LIT4, _OMC_LIT8, _env ,&_compenv ,&_ih ,&_store ,NULL ,NULL ,&_ty ,NULL);
_io = omc_SCodeUtil_prefixesInnerOuter(threadData, _inPrefixes);
_vis = omc_SCodeUtil_prefixesVisibility(threadData, _inPrefixes);
tmpMeta[5] = mmc_mk_box7(3, &DAE_Attributes_ATTR__desc, omc_DAEUtil_toConnectorTypeNoState(threadData, _ct, mmc_mk_none()), _prl1, _var1, _dir, _io, _vis);
tmpMeta[6] = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _n, tmpMeta[5], _ty, _OMC_LIT257, mmc_mk_boolean(0), mmc_mk_none());
_new_var = tmpMeta[6];
_env = omc_FGraph_updateComp(threadData, _env, _new_var, _OMC_LIT258, _compenv);
omc_ErrorExt_rollBack(threadData, _OMC_LIT255);
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_LIT255);
goto goto_2;
goto tmp3_done;
}
case 7: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_6,2,2) == 0) goto tmp3_end;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_6), 2));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 2));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 3));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 4));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 5));
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_9), 6));
_c1 = tmp4_6;
_n = tmpMeta[5];
_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 = tmpMeta[6];
_ct = tmpMeta[7];
_prl1 = tmpMeta[8];
_var1 = tmpMeta[9];
_dir = tmpMeta[10];
_inst_dims = tmp4_10;
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT255);
_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_LIT1;
_cenv = omc_FGraph_createVersionScope(threadData, _env, _n, _pre, _m, _cenv, _c, _ih ,&_c ,&_ih);
tmpMeta[5] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_InstVar_instVar(threadData, _cache, _cenv, _ih, _store, _state, _m, _pre, _n, _c, _attr, _inPrefixes, _dims, tmpMeta[5], _inst_dims, 1, _OMC_LIT256, _info, _OMC_LIT4, _OMC_LIT8, _env ,&_compenv ,&_ih ,&_store ,NULL ,NULL ,&_ty ,NULL);
_io = omc_SCodeUtil_prefixesInnerOuter(threadData, _inPrefixes);
_vis = omc_SCodeUtil_prefixesVisibility(threadData, _inPrefixes);
tmpMeta[5] = mmc_mk_box7(3, &DAE_Attributes_ATTR__desc, omc_DAEUtil_toConnectorTypeNoState(threadData, _ct, mmc_mk_none()), _prl1, _var1, _dir, _io, _vis);
tmpMeta[6] = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _n, tmpMeta[5], _ty, _OMC_LIT257, mmc_mk_boolean(0), mmc_mk_none());
_new_var = tmpMeta[6];
_env = omc_FGraph_updateComp(threadData, _env, _new_var, _OMC_LIT258, _compenv);
omc_ErrorExt_rollBack(threadData, _OMC_LIT255);
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_LIT255);
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 tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;
tmp3_1 = _inMod;
{
modelica_string _id = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
modelica_boolean tmp5;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,4) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],2,8) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
_id = tmpMeta[2];
tmp5 = (modelica_boolean)(stringEqual(_id, omc_AbsynUtil_pathString(threadData, _path, _OMC_LIT11, 1, 0)));
if(tmp5)
{
tmpMeta[1] = mmc_mk_box2(0, _inMod, _OMC_LIT1);
tmpMeta[3] = tmpMeta[1];
}
else
{
tmpMeta[2] = mmc_mk_box2(0, _OMC_LIT1, _inMod);
tmpMeta[3] = tmpMeta[2];
}
tmpMeta[0] = tmpMeta[3];
goto tmp2_done;
}
case 1: {
tmpMeta[1] = mmc_mk_box2(0, _OMC_LIT1, _inMod);
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
tmpMeta[2] = tmpMeta[0];
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 1));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_omod1 = tmpMeta[3];
_omod2 = tmpMeta[4];
_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[8] __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_boolean tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,1,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta[5] = MMC_CAR(tmp4_4);
tmpMeta[6] = MMC_CDR(tmp4_4);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[5],2,8) == 0) goto tmp3_end;
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 2));
_name2 = tmpMeta[4];
_c = tmpMeta[5];
_name1 = tmpMeta[7];
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
tmp6 = (stringEqual(_name1, _name2));
if (1 != tmp6) goto goto_2;
tmpMeta[4] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClass(threadData, _cache, _env, _ih, _OMC_LIT0, _OMC_LIT1, _OMC_LIT2, _c, tmpMeta[4], 0, _OMC_LIT22, _OMC_LIT4, _OMC_LIT8 ,&_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_boolean tmp7;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_5,1,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_5), 2));
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta[5] = MMC_CAR(tmp4_4);
tmpMeta[6] = MMC_CDR(tmp4_4);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[5],2,8) == 0) goto tmp3_end;
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 2));
_path = tmp4_5;
_name2 = tmpMeta[4];
_name1 = tmpMeta[7];
_cs = tmpMeta[6];
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
tmp4 += 1;
tmp7 = (stringEqual(_name1, _name2));
if (0 != tmp7) 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_LIT9;
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[7] __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: {
if (!listEmpty(tmp4_3)) goto tmp3_end;
tmp4 += 2;
tmpMeta[4] = MMC_REFSTRUCTLIT(mmc_nil);
omc_Error_addMessage(threadData, _OMC_LIT263, tmpMeta[4]);
goto goto_2;
goto tmp3_done;
}
case 1: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmp4_3);
tmpMeta[5] = 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_LIT264, _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: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmp4_3);
tmpMeta[5] = 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_LIT264, _env);
tmpMeta[6] = omc_Lookup_lookupClass(threadData, _cache, _env_1, _path, _OMC_LIT267, &tmpMeta[4], &tmpMeta[5]);
_cache = tmpMeta[6];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],2,8) == 0) goto goto_2;
_cdef = tmpMeta[4];
_env_2 = tmpMeta[5];
tmpMeta[4] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClass(threadData, _cache, _env_2, _ih, _OMC_LIT0, _OMC_LIT1, _OMC_LIT2, _cdef, tmpMeta[4], 0, _OMC_LIT22, _OMC_LIT4, _OMC_LIT8 ,&_env_2 ,&_ih ,NULL ,&_dae ,NULL ,NULL ,NULL ,NULL ,NULL);
omc_AbsynUtil_pathString(threadData, _path, _OMC_LIT11, 1, 0);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env_2;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _dae;
goto tmp3_done;
}
case 3: {
_path = tmp4_4;
_cname_str = omc_AbsynUtil_pathString(threadData, _path, _OMC_LIT11, 1, 0);
tmpMeta[4] = mmc_mk_cons(_cname_str, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addMessage(threadData, _OMC_LIT270, tmpMeta[4]);
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 tmpMeta[9] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;modelica_string tmp3_2;
tmp3_1 = _inAttrs;
tmp3_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 tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 5; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (9 != MMC_STRLEN(tmp3_2) || strcmp(MMC_STRINGDATA(_OMC_LIT276), MMC_STRINGDATA(tmp3_2)) != 0) goto tmp2_end;
_attrs = tmp3_1;
tmpMeta[1] = _attrs;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (listEmpty(tmpMeta[2])) goto goto_1;
tmpMeta[3] = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = MMC_CDR(tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],27,1) == 0) goto goto_1;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 3));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 4));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 5));
if (!listEmpty(tmpMeta[4])) goto goto_1;
_objectiveIntegrandE = tmpMeta[6];
_startTimeE = tmpMeta[7];
_finalTimeE = tmpMeta[8];
tmpMeta[2] = mmc_mk_box5(3, &DAE_ClassAttributes_OPTIMIZATION__ATTRS__desc, mmc_mk_some(_inAttrExp), _objectiveIntegrandE, _startTimeE, _finalTimeE);
tmpMeta[3] = mmc_mk_box2(30, &DAE_Element_CLASS__ATTRIBUTES__desc, tmpMeta[2]);
tmpMeta[1] = mmc_mk_cons(tmpMeta[3], MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[4] = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta[1]);
tmpMeta[0] = tmpMeta[4];
goto tmp2_done;
}
case 1: {
if (18 != MMC_STRLEN(tmp3_2) || strcmp(MMC_STRINGDATA(_OMC_LIT277), MMC_STRINGDATA(tmp3_2)) != 0) goto tmp2_end;
_attrs = tmp3_1;
tmpMeta[1] = _attrs;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (listEmpty(tmpMeta[2])) goto goto_1;
tmpMeta[3] = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = MMC_CDR(tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],27,1) == 0) goto goto_1;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 2));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 4));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 5));
if (!listEmpty(tmpMeta[4])) goto goto_1;
_objectiveE = tmpMeta[6];
_startTimeE = tmpMeta[7];
_finalTimeE = tmpMeta[8];
tmpMeta[2] = mmc_mk_box5(3, &DAE_ClassAttributes_OPTIMIZATION__ATTRS__desc, _objectiveE, mmc_mk_some(_inAttrExp), _startTimeE, _finalTimeE);
tmpMeta[3] = mmc_mk_box2(30, &DAE_Element_CLASS__ATTRIBUTES__desc, tmpMeta[2]);
tmpMeta[1] = mmc_mk_cons(tmpMeta[3], MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[4] = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta[1]);
tmpMeta[0] = tmpMeta[4];
goto tmp2_done;
}
case 2: {
if (9 != MMC_STRLEN(tmp3_2) || strcmp(MMC_STRINGDATA(_OMC_LIT278), MMC_STRINGDATA(tmp3_2)) != 0) goto tmp2_end;
_attrs = tmp3_1;
tmpMeta[1] = _attrs;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (listEmpty(tmpMeta[2])) goto goto_1;
tmpMeta[3] = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = MMC_CDR(tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],27,1) == 0) goto goto_1;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 2));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 3));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 5));
if (!listEmpty(tmpMeta[4])) goto goto_1;
_objectiveE = tmpMeta[6];
_objectiveIntegrandE = tmpMeta[7];
_finalTimeE = tmpMeta[8];
tmpMeta[2] = mmc_mk_box5(3, &DAE_ClassAttributes_OPTIMIZATION__ATTRS__desc, _objectiveE, _objectiveIntegrandE, mmc_mk_some(_inAttrExp), _finalTimeE);
tmpMeta[3] = mmc_mk_box2(30, &DAE_Element_CLASS__ATTRIBUTES__desc, tmpMeta[2]);
tmpMeta[1] = mmc_mk_cons(tmpMeta[3], MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[4] = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta[1]);
tmpMeta[0] = tmpMeta[4];
goto tmp2_done;
}
case 3: {
if (9 != MMC_STRLEN(tmp3_2) || strcmp(MMC_STRINGDATA(_OMC_LIT279), MMC_STRINGDATA(tmp3_2)) != 0) goto tmp2_end;
_attrs = tmp3_1;
tmpMeta[1] = _attrs;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 2));
if (listEmpty(tmpMeta[2])) goto goto_1;
tmpMeta[3] = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = MMC_CDR(tmpMeta[2]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],27,1) == 0) goto goto_1;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 2));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 3));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 4));
if (!listEmpty(tmpMeta[4])) goto goto_1;
_objectiveE = tmpMeta[6];
_objectiveIntegrandE = tmpMeta[7];
_startTimeE = tmpMeta[8];
tmpMeta[2] = mmc_mk_box5(3, &DAE_ClassAttributes_OPTIMIZATION__ATTRS__desc, _objectiveE, _objectiveIntegrandE, _startTimeE, mmc_mk_some(_inAttrExp));
tmpMeta[3] = mmc_mk_box2(30, &DAE_Element_CLASS__ATTRIBUTES__desc, tmpMeta[2]);
tmpMeta[1] = mmc_mk_cons(tmpMeta[3], MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[4] = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta[1]);
tmpMeta[0] = tmpMeta[4];
goto tmp2_done;
}
case 4: {
modelica_boolean tmp5;
tmp5 = omc_Flags_isSet(threadData, _OMC_LIT274);
if (1 != tmp5) goto goto_1;
omc_Debug_trace(threadData, _OMC_LIT275);
goto goto_1;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outAttrs = tmpMeta[0];
_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[6] __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: {
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta[3] = MMC_CAR(tmp4_4);
tmpMeta[4] = MMC_CDR(tmp4_4);
_na = tmpMeta[3];
_rest = tmpMeta[4];
_cache = tmp4_1;
_env = tmp4_2;
_pre = tmp4_3;
_impl = tmp4_5;
_clsAttrs = tmp4_6;
tmpMeta[3] = _na;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 3));
_attrName = tmpMeta[4];
_attrExp = tmpMeta[5];
_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_LIT282, _OMC_LIT284);
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_LIT9;
goto tmp3_done;
}
case 1: {
_clsAttrs = _OMC_LIT288;
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_LIT274);
if (1 != tmp6) goto goto_2;
omc_Debug_trace(threadData, _OMC_LIT289);
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[6] __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_LIT9;
tmpMeta[0+3] = _inState;
goto tmp3_done;
}
case 1: {
if (listEmpty(tmp4_1)) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmp4_1);
tmpMeta[5] = MMC_CDR(tmp4_1);
_constr = tmpMeta[4];
_rest = tmpMeta[5];
_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 tmp6;
tmp6 = omc_Flags_isSet(threadData, _OMC_LIT274);
if (1 != tmp6) goto goto_2;
omc_Debug_trace(threadData, _OMC_LIT290);
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[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_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_LIT9;
tmpMeta[0+4] = _csets;
tmpMeta[0+5] = _ci_state;
tmpMeta[0+6] = _graph;
goto tmp3_done;
}
case 1: {
if (listEmpty(tmp4_7)) goto tmp3_end;
tmpMeta[7] = MMC_CAR(tmp4_7);
tmpMeta[8] = MMC_CDR(tmp4_7);
_e = tmpMeta[7];
_es = tmpMeta[8];
_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 tmpMeta[1] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_isKnownBuiltin = 1;
{
modelica_string tmp3_1;
tmp3_1 = _ident;
{
int tmp3;
{
switch (MMC_SWITCH_CAST(stringHashDjb2Mod(tmp3_1,64))) {
case 37 /* Boolean */: {
if (7 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT291), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT293;
goto tmp2_done;
}
case 51 /* Integer */: {
if (7 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT294), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT296;
goto tmp2_done;
}
case 41 /* Real */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT297), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT299;
goto tmp2_done;
}
case 28 /* String */: {
if (6 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT300), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT302;
goto tmp2_done;
}
case 60 /* EnumType */: {
if (8 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT303), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT305;
goto tmp2_done;
}
case 23 /* assert */: {
if (6 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT306), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT307;
goto tmp2_done;
}
case 16 /* reinit */: {
if (6 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT308), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT309;
goto tmp2_done;
}
case 31 /* smooth */: {
if (6 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT212), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
tmpMeta[0] = _OMC_LIT213;
goto tmp2_done;
}
case 33 /* list */: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT310), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
_isKnownBuiltin = omc_Config_acceptMetaModelicaGrammar(threadData);
tmpMeta[0] = _OMC_LIT311;
goto tmp2_done;
}
case 62 /* Option */: {
if (6 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT312), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
_isKnownBuiltin = omc_Config_acceptMetaModelicaGrammar(threadData);
tmpMeta[0] = _OMC_LIT313;
goto tmp2_done;
}
case 47 /* tuple */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT314), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
_isKnownBuiltin = omc_Config_acceptMetaModelicaGrammar(threadData);
tmpMeta[0] = _OMC_LIT315;
goto tmp2_done;
}
case 27 /* polymorphic */: {
if (11 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT316), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
_isKnownBuiltin = omc_Config_acceptMetaModelicaGrammar(threadData);
tmpMeta[0] = _OMC_LIT317;
goto tmp2_done;
}
case 36 /* array */: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT318), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_default;
_isKnownBuiltin = omc_Config_acceptMetaModelicaGrammar(threadData);
tmpMeta[0] = _OMC_LIT319;
goto tmp2_done;
}
default:
tmp2_default: OMC_LABEL_UNUSED; {
_isKnownBuiltin = 0;
tmpMeta[0] = _OMC_LIT254;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_path = tmpMeta[0];
_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[6] __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: {
_cache = tmp4_1;
_env = tmp4_2;
tmpMeta[5] = omc_Lookup_lookupClassIdent(threadData, _cache, _env, _ident, mmc_mk_none(), &tmpMeta[2], &tmpMeta[4]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],2,8) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_name = tmpMeta[3];
_env_1 = tmpMeta[4];
_path_2 = omc_Inst_makeFullyQualified2(threadData, _env_1, _name, _OMC_LIT254);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = omc_AbsynUtil_makeFullyQualified(threadData, _path_2);
goto tmp3_done;
}
case 1: {
modelica_boolean tmp6;
modelica_boolean tmp7;
_cache = tmp4_1;
_env = tmp4_2;
_s = tmp4_3;
_r = omc_FGraph_lastScopeRef(threadData, _env);
tmp6 = omc_FNode_isRefTop(threadData, _r);
if (0 != tmp6) goto goto_2;
_name = omc_FNode_refName(threadData, _r);
tmp7 = (stringEqual(_name, _s));
if (1 != tmp7) goto goto_2;
tmpMeta[2] = omc_FGraph_getScopePath(threadData, _env);
if (optionNone(tmpMeta[2])) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 1));
_path_2 = tmpMeta[3];
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: {
_cache = tmp4_1;
_env = tmp4_2;
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Lookup_lookupVarInternalIdent(threadData, _cache, _env, _ident, tmpMeta[2], _OMC_LIT320 ,NULL ,NULL ,NULL ,NULL ,NULL ,&_env ,NULL ,&_name);
_path3 = omc_Inst_makeFullyQualified2(threadData, _env, _name, _OMC_LIT254);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = omc_AbsynUtil_makeFullyQualified(threadData, _path3);
goto tmp3_done;
}
case 4: {
_cache = tmp4_1;
_env = tmp4_2;
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[3] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Lookup_lookupVarInPackagesIdent(threadData, _cache, _env, _ident, tmpMeta[2], tmpMeta[3], omc_Mutable_create(threadData, mmc_mk_boolean(0)) ,&_env ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,&_name);
_path3 = omc_Inst_makeFullyQualified2(threadData, _env, _name, _OMC_LIT254);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = omc_AbsynUtil_makeFullyQualified(threadData, _path3);
goto tmp3_done;
}
case 5: {
{
modelica_metatype tmp10_1;
tmp10_1 = _inPath;
{
volatile mmc_switch_type tmp10;
int tmp11;
tmp10 = 0;
for (; tmp10 < 2; tmp10++) {
switch (MMC_SWITCH_CAST(tmp10)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp10_1,1,1) == 0) goto tmp9_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp10_1), 2));
if (0 != MMC_STRLEN(tmpMeta[3]) || strcmp(MMC_STRINGDATA(_OMC_LIT5), MMC_STRINGDATA(tmpMeta[3])) != 0) goto tmp9_end;
tmpMeta[3] = mmc_mk_box2(4, &Absyn_Path_IDENT__desc, _ident);
tmpMeta[2] = tmpMeta[3];
goto tmp9_done;
}
case 1: {
tmpMeta[2] = _inPath;
goto tmp9_done;
}
}
goto tmp9_end;
tmp9_end: ;
}
goto goto_8;
goto_8:;
goto goto_2;
goto tmp9_done;
tmp9_done:;
}
}tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = tmpMeta[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];
_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[6] __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: {
tmpMeta[5] = omc_Lookup_lookupClass(threadData, _cache, _inEnv, _path, mmc_mk_none(), &tmpMeta[2], &tmpMeta[4]);
_cache = tmpMeta[5];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],2,8) == 0) goto goto_2;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
_name = tmpMeta[3];
_env_1 = tmpMeta[4];
_path_2 = omc_Inst_makeFullyQualified2(threadData, _env_1, _name, _OMC_LIT254);
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_LIT320 ,NULL ,NULL ,NULL ,NULL ,NULL ,&_env ,NULL ,&_name);
_path3 = omc_Inst_makeFullyQualified2(threadData, _env, _name, _OMC_LIT254);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = omc_AbsynUtil_makeFullyQualified(threadData, _path3);
goto tmp3_done;
}
case 2: {
_crPath = omc_ComponentReference_pathToCref(threadData, _path);
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Lookup_lookupVarInPackages(threadData, _cache, _inEnv, _crPath, tmpMeta[2], omc_Mutable_create(threadData, mmc_mk_boolean(0)) ,&_env ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,&_name);
_path3 = omc_Inst_makeFullyQualified2(threadData, _env, _name, _OMC_LIT254);
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_LIT264, _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_LIT321);
_cache = omc_Mod_elabMod(threadData, _inCache, _inEnv, _inIH, _OMC_LIT2, _inMod, _inImpl, _inModScope, _inInfo ,&_mod);
omc_ErrorExt_rollBack(threadData, _OMC_LIT321);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _mod;
goto tmp3_done;
}
case 1: {
omc_ErrorExt_rollBack(threadData, _OMC_LIT321);
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;
modelica_metatype tmpMeta[2] __attribute__((unused)) = {0};
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_integer tmp5;
tmpMeta[0] = omc_BaseHashTable_get(threadData, _inCref, _inUpdatedComps);
tmp5 = mmc_unbox_integer(tmpMeta[0]);
if (1 != tmp5) goto goto_1;
goto tmp2_done;
}
case 1: {
_smod = omc_SCodeUtil_mergeModifiers(threadData, _inSMod, omc_SCodeUtil_getConstrainedByModifiers(threadData, _inPrefixes));
tmpMeta[0] = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, _inName);
_outCache = omc_Inst_updateComponentInEnv3(threadData, _outCache, _outEnv, _outIH, _smod, _inImpl, tmpMeta[0], _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_LIT2, _mod2, _inImpl, _inInfo ,&_mod2);
_mod = (omc_InstUtil_redeclareBasicType(threadData, _inClsMod)?_mod1:_mod2);
_eq = omc_Mod_modEquation(threadData, _mod);
tmpMeta[0] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[1] = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, _inName, tmpMeta[0]);
_own_cref = tmpMeta[1];
tmpMeta[0] = MMC_REFSTRUCTLIT(mmc_nil);
_outCache = omc_InstUtil_elabArraydim(threadData, _outCache, _outEnv, _own_cref, _inPath, _inSubscripts, _eq, _inImpl, 1, 0, _inPrefix, _inInfo, tmpMeta[0] ,&_dims);
_cls_env = omc_FGraph_createVersionScope(threadData, _outEnv, _inName, _inPrefix, _mod, _inClsEnv, _inClass, _outIH ,&_cls ,&_outIH);
tmpMeta[0] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[1] = MMC_REFSTRUCTLIT(mmc_nil);
_outCache = omc_InstVar_instVar(threadData, _outCache, _cls_env, _outIH, _OMC_LIT0, _inState, _mod, _inPrefix, _inName, _cls, _inAttr, _inPrefixes, _dims, tmpMeta[0], tmpMeta[1], _inImpl, _OMC_LIT256, _inInfo, _OMC_LIT4, _OMC_LIT8, _outEnv ,&_comp_env ,&_outIH ,NULL ,NULL ,NULL ,&_ty, NULL);
_outCache = omc_InstBinding_makeBinding(threadData, _outCache, _outEnv, _inAttr, _mod, _ty, _inPrefix, _inName, _inInfo ,&_binding);
tmpMeta[0] = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _inName, _inDAttr, _ty, _binding, mmc_mk_boolean(0), mmc_mk_none());
_var = tmpMeta[0];
_outEnv = omc_FGraph_updateComp(threadData, _outEnv, _var, _OMC_LIT258, _comp_env);
tmpMeta[0] = mmc_mk_box2(0, _inCref, mmc_mk_integer(((modelica_integer) 1)));
_outUpdatedComps = omc_BaseHashTable_add(threadData, tmpMeta[0], _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_LIT322);
_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_LIT322);
goto tmp2_done;
}
case 1: {
omc_ErrorExt_rollBack(threadData, _OMC_LIT322);
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[23] __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_boolean tmp6;
modelica_boolean tmp7;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,1,4) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],3,8) == 0) goto tmp3_end;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 3));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 2));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 4));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 6));
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 9));
_name = tmpMeta[5];
_prefixes = tmpMeta[6];
_visibility = tmpMeta[7];
_attributes = tmpMeta[8];
_smod = tmpMeta[9];
_info = tmpMeta[10];
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
tmp4 += 1;
_id = omc_AbsynUtil_crefFirstIdent(threadData, _cref);
tmp6 = (stringEqual(_id, _name));
if (1 != tmp6) goto goto_2;
tmp7 = valueEq(_smod, _OMC_LIT10);
if (0 != tmp7) goto goto_2;
tmpMeta[5] = omc_Lookup_lookupIdentLocal(threadData, _cache, _env, _name, &tmpMeta[4], NULL, NULL, NULL, NULL);
_cache = tmpMeta[5];
tmpMeta[4] = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, _name);
_cache = omc_Mod_elabMod(threadData, _cache, _env, _ih, _pre, _smod, _impl, tmpMeta[4], _info ,&_daeMod);
_mods = _daeMod;
_attr = _attributes;
_m = _smod;
_cmod = _OMC_LIT1;
_pf = _prefixes;
_io = omc_SCodeUtil_prefixesInnerOuter(threadData, _pf);
tmpMeta[4] = _attr;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 3));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 4));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 5));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 6));
_ad = tmpMeta[5];
_ct = tmpMeta[6];
_prl1 = tmpMeta[7];
_var1 = tmpMeta[8];
_dir = tmpMeta[9];
tmpMeta[11] = omc_Lookup_lookupIdent(threadData, _cache, _env, _id, NULL, &tmpMeta[4], NULL, NULL, &tmpMeta[10]);
_cache = tmpMeta[11];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],3,8) == 0) goto goto_2;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[6],0,2) == 0) goto goto_2;
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 2));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 8));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 9));
_n = tmpMeta[5];
_t = tmpMeta[7];
_cond = tmpMeta[8];
_info = tmpMeta[9];
_idENV = tmpMeta[10];
_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);
tmpMeta[4] = mmc_mk_box2(0, _cref, mmc_mk_integer(((modelica_integer) 0)));
_updatedComps = omc_BaseHashTable_add(threadData, tmpMeta[4], _updatedComps);
tmpMeta[8] = omc_Inst_updateComponentsInEnv2(threadData, _cache, _env, _ih, _pre, _OMC_LIT1, _crefs_2, _ci_state, _impl, mmc_mk_some(_updatedComps), mmc_mk_some(_cref), &tmpMeta[4], &tmpMeta[5], &tmpMeta[6]);
_cache = tmpMeta[8];
if (optionNone(tmpMeta[6])) goto goto_2;
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 1));
_env2 = tmpMeta[4];
_ih = tmpMeta[5];
_updatedComps = tmpMeta[7];
tmpMeta[4] = 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, tmpMeta[4], _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_boolean tmp8;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_4,1,4) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_4), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],2,8) == 0) goto tmp3_end;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
_name = tmpMeta[5];
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_id = omc_AbsynUtil_crefFirstIdent(threadData, _cref);
tmp8 = (stringEqual(_name, _id));
if (1 != tmp8) 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_LIT323, _env);
_updatedComps = omc_Inst_getUpdatedCompsHashTable(threadData, _inUpdatedComps);
tmpMeta[4] = mmc_mk_box2(0, _cref, mmc_mk_integer(((modelica_integer) 0)));
_updatedComps = omc_BaseHashTable_add(threadData, tmpMeta[4], _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 tmp9;
_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);
tmp9 = omc_FCore_isTyped(threadData, _is);
if (1 != tmp9) goto goto_2;
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _inUpdatedComps;
goto tmp3_done;
}
case 3: {
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_mods = tmp4_4;
_id = omc_AbsynUtil_crefFirstIdent(threadData, _cref);
tmpMeta[22] = omc_Lookup_lookupIdent(threadData, _cache, _env, _id, NULL, &tmpMeta[4], &tmpMeta[20], NULL, &tmpMeta[21]);
_cache = tmpMeta[22];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],3,8) == 0) goto goto_2;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 3));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 2));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 5));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 4));
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 2));
tmpMeta[11] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 3));
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 4));
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 5));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 6));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[15],0,2) == 0) goto goto_2;
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[15]), 2));
tmpMeta[17] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 6));
tmpMeta[18] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 8));
tmpMeta[19] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 9));
_n = tmpMeta[5];
_pf = tmpMeta[6];
_visibility = tmpMeta[7];
_io = tmpMeta[8];
_attr = tmpMeta[9];
_ad = tmpMeta[10];
_ct = tmpMeta[11];
_prl1 = tmpMeta[12];
_var1 = tmpMeta[13];
_dir = tmpMeta[14];
_t = tmpMeta[16];
_m = tmpMeta[17];
_cond = tmpMeta[18];
_info = tmpMeta[19];
_cmod = tmpMeta[20];
_idENV = tmpMeta[21];
_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);
tmpMeta[4] = 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, tmpMeta[4]);
_crefs_2 = omc_InstUtil_removeCrefFromCrefs(threadData, _crefs, _cref);
_crefs_2 = omc_InstUtil_removeOptCrefFromCrefs(threadData, _crefs_2, _currentCref);
tmpMeta[4] = mmc_mk_box2(0, _cref, mmc_mk_integer(((modelica_integer) 0)));
_updatedComps = omc_BaseHashTable_add(threadData, tmpMeta[4], _updatedComps);
tmpMeta[8] = omc_Inst_updateComponentsInEnv2(threadData, _cache, _env, _ih, _pre, _mods, _crefs_2, _ci_state, _impl, mmc_mk_some(_updatedComps), mmc_mk_some(_cref), &tmpMeta[4], &tmpMeta[5], &tmpMeta[6]);
_cache = tmpMeta[8];
if (optionNone(tmpMeta[6])) goto goto_2;
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 1));
_env2 = tmpMeta[4];
_ih = tmpMeta[5];
_updatedComps = tmpMeta[7];
tmpMeta[4] = 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, tmpMeta[4], _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 tmp10;
_env = tmp4_2;
tmp10 = omc_Flags_isSet(threadData, _OMC_LIT274);
if (1 != tmp10) goto goto_2;
tmpMeta[4] = stringAppend(_OMC_LIT324,omc_Dump_printComponentRefStr(threadData, _cref));
omc_Debug_traceln(threadData, tmpMeta[4]);
tmpMeta[4] = stringAppend(_OMC_LIT325,omc_Mod_printModStr(threadData, _mod));
omc_Debug_traceln(threadData, tmpMeta[4]);
tmpMeta[4] = stringAppend(_OMC_LIT326,omc_FGraph_printGraphPathStr(threadData, _env));
omc_Debug_traceln(threadData, tmpMeta[4]);
tmpMeta[4] = stringAppend(_OMC_LIT327,omc_PrefixUtil_printPrefixStr(threadData, _pre));
omc_Debug_traceln(threadData, tmpMeta[4]);
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 tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;
tmp3_1 = _optHT;
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (optionNone(tmp3_1)) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
_ht = tmpMeta[1];
tmpMeta[0] = _ht;
goto tmp2_done;
}
case 1: {
tmpMeta[0] = omc_HashTable5_emptyHashTableSized(threadData, ((modelica_integer) 257));
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_ht = tmpMeta[0];
_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_LIT328);
{
{
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_LIT328);
_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 tmpMeta[5] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _inCache;
_outEnv = _inEnv;
_outIH = _inIH;
_outElement = _inElement;
_outMod = _OMC_LIT1;
if((!omc_Mod_isRedeclareMod(threadData, _inMod)))
{
_outMod = omc_Mod_merge(threadData, _inMod, _inCmod, _OMC_LIT5, 1);
goto _return;
}
tmpMeta[0] = _inMod;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],1,4) == 0) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 4));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 5));
_redecl_el = tmpMeta[1];
_redecl_mod = tmpMeta[2];
_redecl_name = omc_SCodeUtil_elementName(threadData, _redecl_el);
{
volatile modelica_metatype tmp4_1;volatile modelica_metatype tmp4_2;
tmp4_1 = _redecl_el;
tmp4_2 = _inElement;
{
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_boolean tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,3,8) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,3,8) == 0) goto tmp3_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 3));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 6));
_repl = tmpMeta[3];
tmp4 += 3;
tmp6 = (stringEqual(_redecl_name, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inElement), 2)))));
if (1 != tmp6) goto goto_2;
_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_LIT1, _crefs, _inState, _inImpl ,&_outEnv ,&_outIH);
tmpMeta[2] = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, _redecl_name);
_outCache = omc_Mod_elabMod(threadData, _outCache, _outEnv, _outIH, _inPrefix, _mod, _inImpl, tmpMeta[2], (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_redecl_el), 9))) ,&_m);
tmpMeta[2] = 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, tmpMeta[2], (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inElement), 9))) ,&_old_m);
{
modelica_metatype tmp9_1;
tmp9_1 = _repl;
{
volatile mmc_switch_type tmp9;
int tmp10;
tmp9 = 0;
for (; tmp9 < 2; tmp9++) {
switch (MMC_SWITCH_CAST(tmp9)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,0,1) == 0) goto tmp8_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp9_1), 2));
if (optionNone(tmpMeta[3])) goto tmp8_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 1));
_cc = tmpMeta[3];
_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);
tmpMeta[2] = omc_Mod_merge(threadData, _m, _inCmod, _redecl_name, 1);
goto tmp8_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);
tmpMeta[2] = omc_Mod_merge(threadData, _inCmod, _m, _redecl_name, 1);
goto tmp8_done;
}
}
goto tmp8_end;
tmp8_end: ;
}
goto goto_7;
goto_7:;
goto goto_2;
goto tmp8_done;
tmp8_done:;
}
}
_m = tmpMeta[2];
_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 tmp3_done;
}
case 1: {
modelica_boolean tmp11;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,2,8) == 0) goto tmp3_end;
tmp4 += 2;
tmp11 = (stringEqual(_redecl_name, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inElement), 2)))));
if (1 != tmp11) goto goto_2;
tmpMeta[3] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[4] = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inElement), 2))), tmpMeta[3]);
tmpMeta[2] = mmc_mk_cons(tmpMeta[4], MMC_REFSTRUCTLIT(mmc_nil));
_outCache = omc_Inst_updateComponentsInEnv(threadData, _inCache, _inEnv, _inIH, _inPrefix, _inMod, tmpMeta[2], _inState, _inImpl ,&_outEnv ,&_outIH);
tmpMeta[0+0] = _inElement;
tmpMeta[0+1] = _redecl_mod;
goto tmp3_done;
}
case 2: {
modelica_boolean tmp12;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,3,8) == 0) goto tmp3_end;
_name = omc_AbsynUtil_typeSpecPathString(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inElement), 5))));
tmp12 = (stringEqual(_redecl_name, _name));
if (1 != tmp12) goto goto_2;
tmpMeta[3] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[4] = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, _name, tmpMeta[3]);
tmpMeta[2] = mmc_mk_cons(tmpMeta[4], MMC_REFSTRUCTLIT(mmc_nil));
_outCache = omc_Inst_updateComponentsInEnv(threadData, _inCache, _inEnv, _inIH, _inPrefix, _inMod, tmpMeta[2], _inState, _inImpl ,&_outEnv ,&_outIH);
tmpMeta[0+0] = _inElement;
tmpMeta[0+1] = _redecl_mod;
goto tmp3_done;
}
case 3: {
modelica_boolean tmp13;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,3,8) == 0) goto tmp3_end;
_name = omc_AbsynUtil_pathFirstIdent(threadData, omc_AbsynUtil_typeSpecPath(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inElement), 5)))));
tmp13 = (stringEqual(_redecl_name, _name));
if (1 != tmp13) goto goto_2;
tmpMeta[3] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[4] = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, _name, tmpMeta[3]);
tmpMeta[2] = mmc_mk_cons(tmpMeta[4], MMC_REFSTRUCTLIT(mmc_nil));
_outCache = omc_Inst_updateComponentsInEnv(threadData, _inCache, _inEnv, _inIH, _inPrefix, _inMod, tmpMeta[2], _inState, _inImpl ,&_outEnv ,&_outIH);
tmpMeta[0+0] = _inElement;
tmpMeta[0+1] = _redecl_mod;
goto tmp3_done;
}
case 4: {
tmpMeta[0+0] = _inElement;
tmpMeta[0+1] = _OMC_LIT1;
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:;
}
}
_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[9] __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: {
if (!listEmpty(tmp4_5)) goto tmp3_end;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
tmp4 += 4;
tmpMeta[4] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = tmpMeta[4];
goto tmp3_done;
}
case 1: {
if (listEmpty(tmp4_5)) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmp4_5);
tmpMeta[5] = MMC_CDR(tmp4_5);
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[6],2,0) == 0) goto tmp3_end;
_elMod = tmpMeta[4];
_xs = tmpMeta[5];
_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);
tmpMeta[4] = mmc_mk_cons(_elMod, _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = tmpMeta[4];
goto tmp3_done;
}
case 2: {
if (listEmpty(tmp4_5)) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmp4_5);
tmpMeta[5] = MMC_CDR(tmp4_5);
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 1));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[7],1,4) == 0) goto tmp3_end;
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[7]), 4));
_comp = tmpMeta[6];
_cmod = tmpMeta[7];
_redComp = tmpMeta[8];
_xs = tmpMeta[5];
_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);
tmpMeta[4] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[5] = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, _name, tmpMeta[4]);
_cref = tmpMeta[5];
_ltmod = omc_List_map1(threadData, _crefs, boxvar_InstUtil_getModsForDep, _xs);
tmpMeta[4] = mmc_mk_cons(_cmod, _ltmod);
_cmod2 = omc_List_fold2r(threadData, tmpMeta[4], boxvar_Mod_merge, _name, mmc_mk_boolean(1), _OMC_LIT1);
tmpMeta[4] = omc_SCodeUtil_elementPrefixes(threadData, _comp);
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 4));
_fprefix = tmpMeta[5];
_cache = omc_Inst_updateComponentsInEnv(threadData, _cache, _env, _ih, _pre, _cmod2, _crefs, _ci_state, _impl ,&_env2 ,&_ih);
tmpMeta[5] = mmc_mk_box3(3, &DAE_SubMod_NAMEMOD__desc, _name, _cmod);
tmpMeta[4] = mmc_mk_cons(tmpMeta[5], MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[6] = mmc_mk_box6(3, &DAE_Mod_MOD__desc, _fprefix, _OMC_LIT329, tmpMeta[4], mmc_mk_none(), _info);
tmpMeta[7] = mmc_mk_cons(_cref, MMC_REFSTRUCTLIT(mmc_nil));
_cache = omc_Inst_updateComponentsInEnv(threadData, _cache, _env2, _ih, _pre, tmpMeta[6], tmpMeta[7], _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);
tmpMeta[5] = mmc_mk_box2(0, _comp, _cmod_1);
tmpMeta[4] = mmc_mk_cons(tmpMeta[5], _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env3;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = tmpMeta[4];
goto tmp3_done;
}
case 3: {
modelica_boolean tmp6;
if (listEmpty(tmp4_5)) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmp4_5);
tmpMeta[5] = MMC_CDR(tmp4_5);
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 1));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[7],0,5) == 0) goto tmp3_end;
_comp = tmpMeta[6];
_cmod = tmpMeta[7];
_xs = tmpMeta[5];
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_pre = tmp4_4;
_ci_state = tmp4_6;
_impl = tmp4_7;
tmp6 = omc_Mod_isUntypedMod(threadData, _cmod);
if (0 != tmp6) goto goto_2;
_name = omc_SCodeUtil_elementName(threadData, _comp);
tmpMeta[4] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[5] = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, _name, tmpMeta[4]);
_cref = tmpMeta[5];
tmpMeta[4] = omc_SCodeUtil_elementPrefixes(threadData, _comp);
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 4));
_fprefix = tmpMeta[5];
tmpMeta[5] = mmc_mk_box3(3, &DAE_SubMod_NAMEMOD__desc, _name, _cmod);
tmpMeta[4] = mmc_mk_cons(tmpMeta[5], MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[6] = mmc_mk_box6(3, &DAE_Mod_MOD__desc, _fprefix, _OMC_LIT329, tmpMeta[4], mmc_mk_none(), (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_cmod), 6))));
tmpMeta[7] = mmc_mk_cons(_cref, MMC_REFSTRUCTLIT(mmc_nil));
_cache = omc_Inst_updateComponentsInEnv(threadData, _cache, _env, _ih, _pre, tmpMeta[6], tmpMeta[7], _ci_state, _impl ,&_env2 ,&_ih);
_cache = omc_Inst_updateCompeltsMods__dispatch(threadData, _cache, _env2, _ih, _pre, _xs, _ci_state, _impl ,&_env3 ,&_ih ,&_res);
tmpMeta[5] = mmc_mk_box2(0, _comp, _cmod);
tmpMeta[4] = mmc_mk_cons(tmpMeta[5], _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env3;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = tmpMeta[4];
goto tmp3_done;
}
case 4: {
if (listEmpty(tmp4_5)) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmp4_5);
tmpMeta[5] = MMC_CDR(tmp4_5);
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 1));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[7],0,5) == 0) goto tmp3_end;
_comp = tmpMeta[6];
_cmod = tmpMeta[7];
_xs = tmpMeta[5];
_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);
tmpMeta[4] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[5] = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, _name, tmpMeta[4]);
_cref = tmpMeta[5];
_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_LIT1);
tmpMeta[4] = omc_SCodeUtil_elementPrefixes(threadData, _comp);
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 4));
_fprefix = tmpMeta[5];
_cache = omc_Inst_updateComponentsInEnv(threadData, _cache, _env, _ih, _pre, _cmod2, _crefs, _ci_state, _impl ,&_env2 ,&_ih);
tmpMeta[5] = mmc_mk_box3(3, &DAE_SubMod_NAMEMOD__desc, _name, _cmod);
tmpMeta[4] = mmc_mk_cons(tmpMeta[5], MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[6] = mmc_mk_box6(3, &DAE_Mod_MOD__desc, _fprefix, _OMC_LIT329, tmpMeta[4], mmc_mk_none(), (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_cmod), 6))));
tmpMeta[7] = mmc_mk_cons(_cref, MMC_REFSTRUCTLIT(mmc_nil));
_cache = omc_Inst_updateComponentsInEnv(threadData, _cache, _env2, _ih, _pre, tmpMeta[6], tmpMeta[7], _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);
tmpMeta[5] = mmc_mk_box2(0, _comp, _cmod_1);
tmpMeta[4] = mmc_mk_cons(tmpMeta[5], _res);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env3;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = tmpMeta[4];
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_LIT330);
_outCache = omc_Inst_updateCompeltsMods__dispatch(threadData, _inCache, _inEnv, _inIH, _inPrefix, _inComponents, _inState, _inImplicit ,&_outEnv ,&_outIH ,&_outComponents);
omc_ErrorExt_rollBack(threadData, _OMC_LIT330);
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_LIT330);
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 tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;modelica_metatype tmp3_2;
tmp3_1 = _inBind;
tmp3_2 = _inPrefix;
{
modelica_metatype _bind = NULL;
modelica_metatype _pref = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,4) == 0) goto tmp2_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_2,1,2) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_2), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],0,6) == 0) goto tmp2_end;
_bind = tmp3_1;
_pref = tmp3_2;
tmpMeta[1] = MMC_TAGPTR(mmc_alloc_words(6));
memcpy(MMC_UNTAGPTR(tmpMeta[1]), MMC_UNTAGPTR(_bind), 6*sizeof(modelica_metatype));
((modelica_metatype*)MMC_UNTAGPTR(tmpMeta[1]))[2] = omc_PrefixUtil_removeCompPrefixFromExps(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_bind), 2))), (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_pref), 2))));
_bind = tmpMeta[1];
tmpMeta[0] = _bind;
goto tmp2_done;
}
case 1: {
tmpMeta[0] = _inBind;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outBind = tmpMeta[0];
_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[24] __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: {
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[9],0,3) == 0) goto tmp3_end;
tmp4 += 4;
tmpMeta[9] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = _inEnv;
tmpMeta[0+2] = _inIH;
tmpMeta[0+3] = _inUnitStore;
tmpMeta[0+4] = _OMC_LIT9;
tmpMeta[0+5] = _inSets;
tmpMeta[0+6] = _inState;
tmpMeta[0+7] = tmpMeta[9];
tmpMeta[0+8] = _inGraph;
goto tmp3_done;
}
case 1: {
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[9],2,8) == 0) goto tmp3_end;
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
_cls = tmpMeta[9];
_cmod = tmpMeta[10];
tmp4 += 3;
if((!omc_Mod_isEmptyMod(threadData, _cmod)))
{
_env = omc_FGraph_updateClass(threadData, _inEnv, _cls, _inPrefix, _cmod, _OMC_LIT323, _inEnv);
}
else
{
_env = _inEnv;
}
tmpMeta[9] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _inIH;
tmpMeta[0+3] = _inUnitStore;
tmpMeta[0+4] = _OMC_LIT9;
tmpMeta[0+5] = _inSets;
tmpMeta[0+6] = _inState;
tmpMeta[0+7] = tmpMeta[9];
tmpMeta[0+8] = _inGraph;
goto tmp3_done;
}
case 2: {
modelica_boolean tmp6;
modelica_boolean tmp7;
modelica_boolean tmp8;
modelica_boolean tmp9;
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[9],3,8) == 0) goto tmp3_end;
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 2));
tmpMeta[11] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[11],0,2) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
_el = tmpMeta[9];
_name = tmpMeta[10];
_cmod = tmpMeta[12];
_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;
tmpMeta[9] = _el;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[9],3,8) == 0) goto goto_2;
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 2));
tmpMeta[11] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 3));
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[11]), 4));
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[11]), 5));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 4));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[14]), 2));
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[16],0,2) == 0) goto goto_2;
tmpMeta[17] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[16]), 2));
tmpMeta[18] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 6));
tmpMeta[19] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 7));
tmpMeta[20] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 8));
tmpMeta[21] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 9));
_name = tmpMeta[10];
_prefixes = tmpMeta[11];
_final_prefix = tmpMeta[12];
_io = tmpMeta[13];
_attr = tmpMeta[14];
_ad = tmpMeta[15];
_ts = tmpMeta[16];
_t = tmpMeta[17];
_m = tmpMeta[18];
_comment = tmpMeta[19];
_cond = tmpMeta[20];
_info = tmpMeta[21];
tmp6 = (omc_Config_acceptParModelicaGrammar(threadData)?omc_InstUtil_checkParallelismWRTEnv(threadData, _env, _name, _attr, _info):1);
if (1 != tmp6) 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);
}
tmp7 = (modelica_boolean)referenceEq((MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_el), 6))), _m);
if(tmp7)
{
tmpMeta[10] = _el;
}
else
{
tmpMeta[9] = mmc_mk_box9(6, &SCode_Element_COMPONENT__desc, _name, _prefixes, _attr, _ts, _m, _comment, _cond, _info);
tmpMeta[10] = tmpMeta[9];
}
_comp = tmpMeta[10];
_oldmod = _m;
tmpMeta[9] = mmc_mk_box2(0, _comp, _cmod);
_already_declared = omc_InstUtil_checkMultiplyDeclared(threadData, _cache, _env, _mods, _pre, _ci_state, tmpMeta[9], _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);
tmp8 = (modelica_boolean)referenceEq(_oldmod, _m);
if(tmp8)
{
tmpMeta[10] = _comp;
}
else
{
tmpMeta[9] = mmc_mk_box9(6, &SCode_Element_COMPONENT__desc, _name, _prefixes, _attr, _ts, _m, _comment, _cond, _info);
tmpMeta[10] = tmpMeta[9];
}
_comp = tmpMeta[10];
tmpMeta[9] = mmc_mk_box2(8, &ClassInf_Event_FOUND__COMPONENT__desc, _name);
_ci_state = omc_ClassInf_trans(threadData, _ci_state, tmpMeta[9]);
tmpMeta[9] = MMC_REFSTRUCTLIT(mmc_nil);
_cref = omc_ComponentReference_makeCrefIdent(threadData, _name, _OMC_LIT331, tmpMeta[9]);
_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);
tmpMeta[9] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[10] = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, _name, tmpMeta[9]);
_own_cref = tmpMeta[10];
_crefs1 = omc_InstUtil_getCrefFromMod(threadData, _m);
_crefs2 = omc_InstUtil_getCrefFromDim(threadData, _ad);
_crefs3 = omc_InstUtil_getCrefFromCond(threadData, _cond);
tmpMeta[9] = mmc_mk_cons(_crefs1, mmc_mk_cons(_crefs2, mmc_mk_cons(_crefs3, MMC_REFSTRUCTLIT(mmc_nil))));
_crefs = omc_List_unionList(threadData, tmpMeta[9]);
_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);
tmpMeta[9] = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, _name);
_cache = omc_Mod_elabMod(threadData, _cache, _env2, _ih, _pre, _m, _impl, tmpMeta[9], _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);
tmpMeta[22] = omc_Inst_redeclareType(threadData, _cache, _env2, _ih, _mod, _comp, _pre, _ci_state, _impl, _OMC_LIT1, &tmpMeta[9], &tmpMeta[10], &tmpMeta[11], &tmpMeta[21]);
_cache = tmpMeta[22];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[11],3,8) == 0) goto goto_2;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[11]), 2));
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[11]), 3));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 5));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[11]), 4));
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[15]), 2));
tmpMeta[17] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[15]), 6));
tmpMeta[18] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[11]), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[18],0,2) == 0) goto goto_2;
tmpMeta[19] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[18]), 2));
tmpMeta[20] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[11]), 7));
_env2 = tmpMeta[9];
_ih = tmpMeta[10];
_name = tmpMeta[12];
_prefixes = tmpMeta[13];
_io = tmpMeta[14];
_attr = tmpMeta[15];
_ad = tmpMeta[16];
_dir = tmpMeta[17];
_t = tmpMeta[19];
_comment = tmpMeta[20];
_mod_1 = tmpMeta[21];
_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_LIT333);
}
_mod_1 = omc_Mod_merge(threadData, _mod_1, _cls_mod, _name, 1);
}
_attr = omc_SCodeUtil_mergeAttributesFromClass(threadData, _attr, _cls);
tmpMeta[9] = MMC_REFSTRUCTLIT(mmc_nil);
_inst_dims = omc_List_appendElt(threadData, tmpMeta[9], _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_LIT363) == ((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);
tmpMeta[9] = _topInstance;
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 5));
_sm = tmpMeta[10];
if(omc_BaseHashSet_has(threadData, _cref2, _sm))
{
_isInSM = 1;
}
else
{
_isInSM = 0;
}
}
else
{
_isInSM = 0;
}
tmpMeta[9] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_InstVar_instVar(threadData, _cache, _cenv, _ih, _store, _ci_state, _mod_1, _pre, _name, _cls, _attr, _prefixes, _dims, tmpMeta[9], _inst_dims, _impl, _comment, _info, _graph, _csets, _env2 ,&_comp_env ,&_ih ,&_store ,&_dae ,&_csets ,&_ty ,&_graph_new);
if(_isInSM)
{
tmpMeta[9] = _dae;
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 2));
_elems = tmpMeta[10];
tmpMeta[10] = mmc_mk_box3(32, &DAE_Element_SM__COMP__desc, _cref2, _elems);
tmpMeta[9] = mmc_mk_cons(tmpMeta[10], MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[11] = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta[9]);
_dae = tmpMeta[11];
}
_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);
tmpMeta[9] = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _name, _dae_attr, _ty, _binding, mmc_mk_boolean(0), mmc_mk_none());
_new_var = tmpMeta[9];
_env = omc_FGraph_updateComp(threadData, _env2, _new_var, _OMC_LIT364, _comp_env);
tmp9 = (modelica_boolean)_already_declared;
if(tmp9)
{
tmpMeta[9] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[11] = tmpMeta[9];
}
else
{
tmpMeta[10] = mmc_mk_cons(_new_var, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[11] = tmpMeta[10];
}
_vars = tmpMeta[11];
_dae = (_already_declared?_OMC_LIT9:_dae);
omc_InnerOuter_handleInnerOuterEquations(threadData, _io, _OMC_LIT9, _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_boolean tmp10;
modelica_boolean tmp11;
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[9],3,8) == 0) goto tmp3_end;
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 2));
tmpMeta[11] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 3));
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[11]), 4));
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[11]), 5));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 4));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[14]), 2));
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[14]), 3));
tmpMeta[17] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[17],1,3) == 0) goto tmp3_end;
tmpMeta[18] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[17]), 2));
tmpMeta[19] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 6));
tmpMeta[20] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 7));
tmpMeta[21] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 8));
tmpMeta[22] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 9));
tmpMeta[23] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
_comp = tmpMeta[9];
_name = tmpMeta[10];
_prefixes = tmpMeta[11];
_final_prefix = tmpMeta[12];
_io = tmpMeta[13];
_attr = tmpMeta[14];
_ad = tmpMeta[15];
_ct = tmpMeta[16];
_ts = tmpMeta[17];
_type_name = tmpMeta[18];
_m = tmpMeta[19];
_comment = tmpMeta[20];
_cond = tmpMeta[21];
_info = tmpMeta[22];
_cmod = tmpMeta[23];
_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;
tmp10 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp10) goto goto_2;
if(omc_SCodeUtil_finalBool(threadData, _final_prefix))
{
_m = omc_InstUtil_traverseModAddFinal(threadData, _m);
tmpMeta[9] = mmc_mk_box9(6, &SCode_Element_COMPONENT__desc, _name, _prefixes, _attr, _ts, _m, _comment, _cond, _info);
_comp = tmpMeta[9];
}
tmpMeta[9] = mmc_mk_box2(0, _comp, _cmod);
_already_declared = omc_InstUtil_checkMultiplyDeclared(threadData, _cache, _env, _mods, _pre, _ci_state, tmpMeta[9], _inst_dims, _impl);
tmpMeta[9] = MMC_REFSTRUCTLIT(mmc_nil);
_cref = omc_ComponentReference_makeCrefIdent(threadData, _name, _OMC_LIT331, tmpMeta[9]);
_cache = omc_PrefixUtil_prefixCref(threadData, _cache, _env, _ih, _pre, _cref, NULL);
tmpMeta[9] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[10] = mmc_mk_box3(5, &Absyn_ComponentRef_CREF__IDENT__desc, _name, tmpMeta[9]);
_own_cref = tmpMeta[10];
tmpMeta[9] = mmc_mk_box2(3, &Mod_ModScope_COMPONENT__desc, _name);
_cache = omc_Mod_elabMod(threadData, _cache, _env, _ih, _pre, _m, _impl, tmpMeta[9], _info ,&_m_1);
_id = omc_AbsynUtil_pathString(threadData, _type_name, _OMC_LIT11, 1, 0);
tmpMeta[9] = mmc_mk_box7(3, &SCode_Attributes_ATTR__desc, _ad, _ct, _OMC_LIT374, _OMC_LIT375, _OMC_LIT376, _OMC_LIT377);
tmpMeta[10] = mmc_mk_box4(5, &SCode_ClassDef_DERIVED__desc, _ts, _OMC_LIT10, tmpMeta[9]);
tmpMeta[11] = mmc_mk_box9(5, &SCode_Element_CLASS__desc, _id, _OMC_LIT370, _OMC_LIT371, _OMC_LIT372, _OMC_LIT373, tmpMeta[10], _OMC_LIT256, _info);
_cls = tmpMeta[11];
_cache = omc_InstUtil_elabArraydim(threadData, _cache, _env, _own_cref, _OMC_LIT295, _ad, mmc_mk_none(), _impl, 1, 0, _pre, _info, _inst_dims ,&_dims);
tmpMeta[9] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_InstVar_instVar(threadData, _cache, _env, _ih, _store, _ci_state, _m_1, _pre, _name, _cls, _attr, _prefixes, _dims, tmpMeta[9], _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);
tmpMeta[9] = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _name, _dae_attr, _ty, _binding, mmc_mk_boolean(0), mmc_mk_none());
_new_var = tmpMeta[9];
_env = omc_FGraph_updateComp(threadData, _env, _new_var, _OMC_LIT364, _comp_env);
tmp11 = (modelica_boolean)_already_declared;
if(tmp11)
{
tmpMeta[9] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[11] = tmpMeta[9];
}
else
{
tmpMeta[10] = mmc_mk_cons(_new_var, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[11] = tmpMeta[10];
}
_vars = tmpMeta[11];
_dae = (_already_declared?_OMC_LIT9:_dae);
omc_InnerOuter_handleInnerOuterEquations(threadData, _io, _OMC_LIT9, _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_boolean tmp12;
modelica_boolean tmp14;
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[9],3,8) == 0) goto tmp3_end;
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 2));
tmpMeta[11] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 4));
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[11]), 5));
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[13],0,2) == 0) goto tmp3_end;
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 2));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[9]), 9));
_name = tmpMeta[10];
_vt = tmpMeta[12];
_t = tmpMeta[14];
_info = tmpMeta[15];
_cache = tmp4_1;
_env = tmp4_2;
_pre = tmp4_6;
_ci_state = tmp4_7;
tmp12 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
omc_Lookup_lookupClass(threadData, _cache, _env, _t, mmc_mk_none(), NULL, NULL);
tmp12 = 1;
goto goto_13;
goto_13:;
MMC_CATCH_INTERNAL(mmc_jumper)
if (tmp12) {goto goto_2;}
_s = omc_AbsynUtil_pathString(threadData, _t, _OMC_LIT11, 1, 0);
_scope_str = omc_FGraph_printGraphPathStr(threadData, _env);
tmpMeta[9] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[10] = MMC_REFSTRUCTLIT(mmc_nil);
_pre = omc_PrefixUtil_prefixAdd(threadData, _name, tmpMeta[9], tmpMeta[10], _pre, _vt, _ci_state, _info);
_ns = omc_PrefixUtil_printPrefixStrIgnoreNoPre(threadData, _pre);
tmpMeta[9] = mmc_mk_cons(_s, mmc_mk_cons(_scope_str, mmc_mk_cons(_ns, MMC_REFSTRUCTLIT(mmc_nil))));
omc_Error_addSourceMessage(threadData, _OMC_LIT380, tmpMeta[9], _info);
tmp14 = omc_Flags_isSet(threadData, _OMC_LIT274);
if (1 != tmp14) goto goto_2;
tmpMeta[9] = stringAppend(_OMC_LIT381,omc_AbsynUtil_pathString(threadData, _t, _OMC_LIT11, 1, 0));
omc_Debug_traceln(threadData, tmpMeta[9]);
goto goto_2;
goto tmp3_done;
}
case 5: {
modelica_boolean tmp15;
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 1));
_env = tmp4_2;
_comp = tmpMeta[9];
tmp15 = omc_Flags_isSet(threadData, _OMC_LIT274);
if (1 != tmp15) goto goto_2;
tmpMeta[9] = stringAppend(_OMC_LIT382,omc_SCodeDump_unparseElementStr(threadData, _comp, _OMC_LIT383));
omc_Debug_traceln(threadData, tmpMeta[9]);
tmpMeta[9] = stringAppend(_OMC_LIT384,omc_FGraph_printGraphPathStr(threadData, _env));
omc_Debug_traceln(threadData, tmpMeta[9]);
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_integer tmp1;
modelica_metatype tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_env = __omcQ_24in_5Fenv;
_cache = __omcQ_24in_5Fcache;
if(omc_InstUtil_componentHasCondition(threadData, _element))
{
tmpMeta[0] = _element;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 1));
_el = tmpMeta[1];
_el_name = omc_InstUtil_extractCurrentName(threadData, _el ,&_info);
if(omc_SCodeUtil_isElementRedeclare(threadData, _el))
{
tmpMeta[0] = mmc_mk_cons(_el_name, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT387, tmpMeta[0], _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;
}
}
tmpMeta[0] = _cond_val_opt;
if (optionNone(tmpMeta[0])) MMC_THROW_INTERNAL();
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 1));
tmp1 = mmc_unbox_integer(tmpMeta[1]);
_cond_val = tmp1;
_isDeleted = (!_cond_val);
if(((!_isDeleted && !1) || (_isDeleted && 1)))
{
tmpMeta[0] = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _el_name, _OMC_LIT389, _OMC_LIT331, _OMC_LIT257, mmc_mk_boolean(0), mmc_mk_none());
_var = tmpMeta[0];
_env = omc_FGraph_updateComp(threadData, _env, _var, _OMC_LIT390, _OMC_LIT392);
}
}
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 _outSets = NULL;
modelica_metatype _outState = NULL;
modelica_metatype _outVars = NULL;
modelica_metatype _outGraph = NULL;
modelica_metatype _outFieldDomOpt = NULL;
modelica_metatype _elt = NULL;
modelica_boolean _is_deleted;
modelica_metatype tmpMeta[13] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outIH = _inIH;
_outStore = _inStore;
tmpMeta[0] = MMC_REFSTRUCTLIT(mmc_nil);
_outDae = tmpMeta[0];
_outSets = _inSets;
_outState = _inState;
tmpMeta[1] = MMC_REFSTRUCTLIT(mmc_nil);
_outVars = tmpMeta[1];
_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 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_LIT393);
tmpMeta[7] = mmc_mk_cons(_inElement, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[8] = omc_Inst_updateCompeltsMods(threadData, _inCache, _outEnv, _outIH, _inPrefix, tmpMeta[7], _outState, _inImplicit, &tmpMeta[2], &tmpMeta[3], &tmpMeta[4]);
_outCache = tmpMeta[8];
if (listEmpty(tmpMeta[4])) goto goto_1;
tmpMeta[5] = MMC_CAR(tmpMeta[4]);
tmpMeta[6] = MMC_CDR(tmpMeta[4]);
if (!listEmpty(tmpMeta[6])) goto goto_1;
_outEnv = tmpMeta[2];
_outIH = tmpMeta[3];
_elt = tmpMeta[5];
tmpMeta[12] = omc_Inst_instElement(threadData, _outCache, _outEnv, _outIH, _outStore, _inMod, _inPrefix, _outState, _elt, _inInstDims, _inImplicit, _inCallingScope, _outGraph, _inSets, &tmpMeta[2], &tmpMeta[3], &tmpMeta[4], &tmpMeta[5], &tmpMeta[7], &tmpMeta[8], &tmpMeta[9], &tmpMeta[10], &tmpMeta[11]);
_outCache = tmpMeta[12];
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 2));
_outEnv = tmpMeta[2];
_outIH = tmpMeta[3];
_outStore = tmpMeta[4];
_outDae = tmpMeta[6];
_outSets = tmpMeta[7];
_outState = tmpMeta[8];
_outVars = tmpMeta[9];
_outGraph = tmpMeta[10];
_outFieldDomOpt = tmpMeta[11];
omc_Error_clearCurrentComponent(threadData);
omc_ErrorExt_delCheckpoint(threadData, _OMC_LIT393);
goto tmp2_done;
}
case 1: {
if(_inStopOnError)
{
omc_ErrorExt_delCheckpoint(threadData, _OMC_LIT393);
goto goto_1;
}
else
{
omc_ErrorExt_rollBack(threadData, _OMC_LIT393);
_outCache = _inCache;
_outEnv = _inEnv;
_outIH = _inIH;
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:;
}
}
;
_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 _index_map = NULL;
modelica_metatype _sorted_el = NULL;
modelica_integer _i;
modelica_integer tmp3;
modelica_metatype tmpMeta[7] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
tmpMeta[0] = MMC_REFSTRUCTLIT(mmc_nil);
_outIndices = tmpMeta[0];
tmpMeta[1] = MMC_REFSTRUCTLIT(mmc_nil);
_index_map = tmpMeta[1];
_i = ((modelica_integer) 1);
{
modelica_metatype _e;
for (tmpMeta[2] = _inElements; !listEmpty(tmpMeta[2]); tmpMeta[2]=MMC_CDR(tmpMeta[2]))
{
_e = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = mmc_mk_box2(0, omc_Util_tuple21(threadData, _e), mmc_mk_integer(_i));
tmpMeta[3] = mmc_mk_cons(tmpMeta[4], _index_map);
_index_map = tmpMeta[3];
_i = ((modelica_integer) 1) + _i;
}
}
_index_map = listReverse(_index_map);
{
modelica_metatype __omcQ_24tmpVar1;
modelica_metatype* tmp1;
modelica_metatype __omcQ_24tmpVar0;
int tmp2;
modelica_metatype _e_loopVar = 0;
modelica_metatype _e;
_e_loopVar = _inSortedElements;
tmpMeta[3] = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar1 = tmpMeta[3];
tmp1 = &__omcQ_24tmpVar1;
while(1) {
tmp2 = 1;
if (!listEmpty(_e_loopVar)) {
_e = MMC_CAR(_e_loopVar);
_e_loopVar = MMC_CDR(_e_loopVar);
tmp2--;
}
if (tmp2 == 0) {
__omcQ_24tmpVar0 = omc_Util_tuple21(threadData, _e);
*tmp1 = mmc_mk_cons(__omcQ_24tmpVar0,0);
tmp1 = &MMC_CDR(*tmp1);
} else if (tmp2 == 1) {
break;
} else {
MMC_THROW_INTERNAL();
}
}
*tmp1 = mmc_mk_nil();
tmpMeta[2] = __omcQ_24tmpVar1;
}
_sorted_el = tmpMeta[2];
{
modelica_metatype _e;
for (tmpMeta[2] = _sorted_el; !listEmpty(tmpMeta[2]); tmpMeta[2]=MMC_CDR(tmpMeta[2]))
{
_e = MMC_CAR(tmpMeta[2]);
tmpMeta[6] = omc_List_deleteMemberOnTrue(threadData, _e, _index_map, boxvar_Inst_getSortedElementOrdering__comp, &tmpMeta[3]);
_index_map = tmpMeta[6];
if (optionNone(tmpMeta[3])) MMC_THROW_INTERNAL();
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 1));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
tmp3 = mmc_unbox_integer(tmpMeta[5]);
_i = tmp3;
tmpMeta[3] = mmc_mk_cons(mmc_mk_integer(_i), _outIndices);
_outIndices = tmpMeta[3];
}
}
_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 _el = NULL;
modelica_metatype _cache = NULL;
modelica_metatype _vars = NULL;
modelica_metatype _dae = NULL;
modelica_metatype _varsl = NULL;
modelica_metatype _dael = NULL;
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 tmpMeta[6] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _inCache;
_outEnv = _inEnv;
_outIH = _inIH;
_outStore = _inStore;
_outSets = _inSets;
_outState = _inState;
_outGraph = _inGraph;
tmpMeta[0] = MMC_REFSTRUCTLIT(mmc_nil);
_domainFieldsListOut = tmpMeta[0];
tmpMeta[1] = MMC_REFSTRUCTLIT(mmc_nil);
_varsl = tmpMeta[1];
tmpMeta[2] = MMC_REFSTRUCTLIT(mmc_nil);
_dael = tmpMeta[2];
_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);
tmpMeta[3] = MMC_REFSTRUCTLIT(mmc_nil);
_var_arr = arrayCreate(_length, tmpMeta[3]);
tmpMeta[3] = MMC_REFSTRUCTLIT(mmc_nil);
_dae_arr = arrayCreate(_length, tmpMeta[3]);
{
modelica_metatype _idx;
for (tmpMeta[3] = _element_order; !listEmpty(tmpMeta[3]); tmpMeta[3]=MMC_CDR(tmpMeta[3]))
{
_idx = MMC_CAR(tmpMeta[3]);
_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_LIT363) == ((modelica_integer) 5)))
{
_domainFieldsListOut = omc_InstUtil_optAppendField(threadData, _domainFieldsListOut, _fieldDomOpt);
}
}
}
{
modelica_metatype __omcQ_24tmpVar3;
modelica_metatype __omcQ_24tmpVar2;
int tmp1;
modelica_metatype _lst_loopVar = 0;
int tmp2;
modelica_metatype _lst;
_lst_loopVar = _var_arr;
tmp2 = 1;
tmpMeta[4] = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar3 = tmpMeta[4];
while(1) {
tmp1 = 1;
if (tmp2 <= arrayLength(_lst_loopVar)) {
_lst = arrayGet(_lst_loopVar, tmp2++);
tmp1--;
}
if (tmp1 == 0) {
__omcQ_24tmpVar2 = _lst;
__omcQ_24tmpVar3 = listAppend(__omcQ_24tmpVar2, __omcQ_24tmpVar3);
} else if (tmp1 == 1) {
break;
} else {
MMC_THROW_INTERNAL();
}
}
tmpMeta[3] = __omcQ_24tmpVar3;
}
_outVars = tmpMeta[3];
{
modelica_metatype __omcQ_24tmpVar5;
modelica_metatype __omcQ_24tmpVar4;
int tmp3;
modelica_metatype _lst_loopVar = 0;
int tmp4;
modelica_metatype _lst;
_lst_loopVar = _dae_arr;
tmp4 = 1;
tmpMeta[4] = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar5 = tmpMeta[4];
while(1) {
tmp3 = 1;
if (tmp4 <= arrayLength(_lst_loopVar)) {
_lst = arrayGet(_lst_loopVar, tmp4++);
tmp3--;
}
if (tmp3 == 0) {
__omcQ_24tmpVar4 = _lst;
__omcQ_24tmpVar5 = listAppend(__omcQ_24tmpVar4, __omcQ_24tmpVar5);
} else if (tmp3 == 1) {
break;
} else {
MMC_THROW_INTERNAL();
}
}
tmpMeta[3] = __omcQ_24tmpVar5;
}
tmpMeta[5] = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta[3]);
_outDae = tmpMeta[5];
omc_GC_free(threadData, _var_arr);
omc_GC_free(threadData, _dae_arr);
}
else
{
{
modelica_metatype _e;
for (tmpMeta[3] = _el; !listEmpty(tmpMeta[3]); tmpMeta[3]=MMC_CDR(tmpMeta[3]))
{
_e = MMC_CAR(tmpMeta[3]);
_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);
tmpMeta[4] = mmc_mk_cons(_vars, _varsl);
_varsl = tmpMeta[4];
tmpMeta[4] = mmc_mk_cons(_dae, _dael);
_dael = tmpMeta[4];
}
}
_outVars = omc_List_flattenReverse(threadData, _varsl);
tmpMeta[3] = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, omc_List_flattenReverse(threadData, _dael));
_outDae = tmpMeta[3];
}
_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[15] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp4_1;
tmp4_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_boolean _has_dims;
modelica_boolean _is_basic_type;
modelica_metatype _inst_dims = NULL;
modelica_metatype _scope_ty = NULL;
volatile mmc_switch_type tmp4;
int tmp5;
tmpMeta[5] = MMC_REFSTRUCTLIT(mmc_nil);
_dims = tmpMeta[5];
tmp4 = 0;
for (; tmp4 < 2; tmp4++) {
switch (MMC_SWITCH_CAST(tmp4)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,0,8) == 0) goto tmp3_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_LIT394);
_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_LIT0, _mod, _inPrefix, _outState, _const_els, _inInstDims, 1, _OMC_LIT22, _OMC_LIT4, _OMC_LIT8, 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 tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,3) == 0) goto tmp3_end;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[6],0,2) == 0) goto tmp3_end;
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 2));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 3));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
_class_path = tmpMeta[7];
_class_dims = tmpMeta[8];
_class_mod = tmpMeta[9];
_info = omc_SCodeUtil_elementInfo(threadData, _inClass);
_has_dims = (!(isNone(_class_dims) || valueEq(_class_dims, _OMC_LIT395)));
{
{
volatile mmc_switch_type tmp8;
int tmp9;
tmp8 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp7_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp8 < 2; tmp8++) {
switch (MMC_SWITCH_CAST(tmp8)) {
case 0: {
tmpMeta[8] = omc_Lookup_lookupClass(threadData, _inCache, _inEnv, _class_path, mmc_mk_some(_info), &tmpMeta[6], &tmpMeta[7]);
_outCache = tmpMeta[8];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[6],2,8) == 0) goto goto_6;
_cls = tmpMeta[6];
_cenv = tmpMeta[7];
goto tmp7_done;
}
case 1: {
_class_name = omc_AbsynUtil_pathString(threadData, _class_path, _OMC_LIT11, 1, 0);
_scope_str = omc_FGraph_printGraphPathStr(threadData, _inEnv);
tmpMeta[6] = mmc_mk_cons(_class_name, mmc_mk_cons(_scope_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessageAndFail(threadData, _OMC_LIT398, tmpMeta[6], _info);
goto tmp7_done;
}
}
goto tmp7_end;
tmp7_end: ;
}
goto goto_6;
tmp7_done:
(void)tmp8;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp7_done2;
goto_6:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp8 < 2) {
goto tmp7_top;
}
goto goto_2;
tmp7_done2:;
}
}
;
tmpMeta[6] = _cls;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[6],2,8) == 0) goto goto_2;
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 2));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 4));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 6));
_class_name = tmpMeta[7];
_enc = tmpMeta[8];
_der_re = tmpMeta[9];
_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);
tmpMeta[6] = mmc_mk_box2(5, &Mod_ModScope_DERIVED__desc, _class_path);
_outCache = omc_Mod_elabMod(threadData, _outCache, _parent_env, _inIH, _inPrefix, _smod, 0, tmpMeta[6], _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_LIT399, _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
{
tmpMeta[7] = mmc_mk_box6(4, &SCode_Element_EXTENDS__desc, _class_path, _inVisibility, _OMC_LIT10, mmc_mk_none(), _info);
tmpMeta[6] = mmc_mk_cons(tmpMeta[7], MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[8] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[9] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[10] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[11] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[12] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[13] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[14] = mmc_mk_box9(3, &SCode_ClassDef_PARTS__desc, tmpMeta[6], tmpMeta[8], tmpMeta[9], tmpMeta[10], tmpMeta[11], tmpMeta[12], tmpMeta[13], mmc_mk_none());
_cdef = tmpMeta[14];
_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 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];
_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)
{
modelica_metatype tmpMeta[7] __attribute__((unused)) = {0};
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_boolean tmp5;
if (listEmpty(tmp3_5)) goto tmp2_end;
tmpMeta[0] = MMC_CAR(tmp3_5);
tmpMeta[1] = MMC_CDR(tmp3_5);
if (listEmpty(tmp3_4)) goto tmp2_end;
tmpMeta[2] = MMC_CAR(tmp3_4);
tmpMeta[3] = MMC_CDR(tmp3_4);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],1,5) == 0) goto tmp2_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 2));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 4));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 6));
if (!listEmpty(tmpMeta[3])) goto tmp2_end;
_path = tmpMeta[4];
_mod = tmpMeta[5];
_info = tmpMeta[6];
_cache = tmp3_1;
_env = tmp3_2;
_ih = tmp3_3;
_inst_dims = tmp3_6;
tmpMeta[0] = mmc_mk_box2(5, &Mod_ModScope_DERIVED__desc, _path);
_cache = omc_Mod_elabModForBasicType(threadData, _cache, _env, _ih, _OMC_LIT2, _mod, 1, tmpMeta[0], _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_LIT372);
_cache = omc_Inst_instClass(threadData, _cache, _cenv, _ih, _store, _m_1, _OMC_LIT2, _cdef_1, _inst_dims, 0, _OMC_LIT22, _OMC_LIT4, _OMC_LIT8 ,NULL ,&_ih ,NULL ,NULL ,NULL ,&_ty ,NULL ,NULL ,NULL);
_b1 = omc_Types_basicType(threadData, _ty);
_b2 = omc_Types_arrayType(threadData, _ty);
tmp5 = (_b1 || _b2);
if (1 != tmp5) goto goto_1;
_classname = omc_FGraph_printGraphPathStr(threadData, _env);
omc_ErrorExt_rollBack(threadData, _OMC_LIT400);
tmpMeta[0] = mmc_mk_cons(_classname, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT403, tmpMeta[0], _inInfo);
omc_Mutable_update(threadData, _stopInst, mmc_mk_boolean(1));
goto tmp2_done;
}
case 1: {
omc_ErrorExt_rollBack(threadData, _OMC_LIT400);
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_LIT11, 1, 0);
tmp5 = omc_InstUtil_isBuiltInClass(threadData, _n);
if (1 != tmp5) goto goto_1;
omc_ErrorExt_rollBack(threadData, _OMC_LIT404);
goto tmp2_done;
}
case 1: {
omc_ErrorExt_rollBack(threadData, _OMC_LIT404);
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[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;
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_boolean tmp6;
if (!listEmpty(tmp4_6)) goto tmp3_end;
if (listEmpty(tmp4_5)) goto tmp3_end;
tmpMeta[6] = MMC_CAR(tmp4_5);
tmpMeta[7] = MMC_CDR(tmp4_5);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[6],1,5) == 0) goto tmp3_end;
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 2));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 4));
if (!listEmpty(tmpMeta[7])) goto tmp3_end;
_path = tmpMeta[8];
_mod = tmpMeta[9];
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_7;
_inst_dims = tmp4_8;
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT404);
tmpMeta[6] = mmc_mk_box2(5, &Mod_ModScope_DERIVED__desc, _path);
_cache = omc_Mod_elabModForBasicType(threadData, _cache, _env, _ih, _OMC_LIT2, _mod, 1, tmpMeta[6], _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_LIT2, _cdef, _inst_dims, 0, _OMC_LIT22, _OMC_LIT8 ,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);
tmp6 = (_b1 || (_b2 || _b3));
if (1 != tmp6) goto goto_2;
omc_ErrorExt_rollBack(threadData, _OMC_LIT404);
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: {
if (!listEmpty(tmp4_6)) goto tmp3_end;
if (listEmpty(tmp4_5)) goto tmp3_end;
tmpMeta[6] = MMC_CAR(tmp4_5);
tmpMeta[7] = MMC_CDR(tmp4_5);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[6],1,5) == 0) goto tmp3_end;
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 2));
if (!listEmpty(tmpMeta[7])) goto tmp3_end;
_path = tmpMeta[8];
omc_Inst_rollbackCheck(threadData, _path);
goto goto_2;
goto tmp3_done;
}
case 2: {
modelica_boolean tmp7;
if (listEmpty(tmp4_5)) goto tmp3_end;
tmpMeta[6] = MMC_CAR(tmp4_5);
tmpMeta[7] = MMC_CDR(tmp4_5);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[6],1,5) == 0) goto tmp3_end;
if (!listEmpty(tmpMeta[7])) goto tmp3_end;
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_store = tmp4_4;
_mods = tmp4_7;
_inst_dims = tmp4_8;
tmp7 = listEmpty(_inSCodeElementLst3);
if (0 != tmp7) goto goto_2;
omc_ErrorExt_setCheckpoint(threadData, _OMC_LIT400);
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[9] __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_boolean tmp6;
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta[6] = MMC_CAR(tmp4_4);
tmpMeta[7] = MMC_CDR(tmp4_4);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[6],0,2) == 0) goto tmp3_end;
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 2));
_cn = tmpMeta[8];
_restTypeSpecs = tmpMeta[7];
_cache = tmp4_1;
_env = tmp4_2;
_ih = tmp4_3;
_pre = tmp4_5;
_dims = tmp4_6;
_impl = tmp4_7;
_localAccTypes = tmp4_8;
tmpMeta[8] = omc_Lookup_lookupClass(threadData, _cache, _env, _cn, mmc_mk_some(_inInfo), &tmpMeta[6], &tmpMeta[7]);
_cache = tmpMeta[8];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[6],2,8) == 0) goto goto_2;
_c = tmpMeta[6];
_cenv = tmpMeta[7];
tmp6 = omc_SCodeUtil_isFunction(threadData, _c);
if (0 != tmp6) goto goto_2;
_cache = omc_Inst_instClass(threadData, _cache, _cenv, _ih, _OMC_LIT0, _OMC_LIT1, _pre, _c, _dims, _impl, _OMC_LIT22, _OMC_LIT4, _inSets ,&_cenv ,&_ih ,NULL ,NULL ,&_csets ,&_ty ,NULL ,&_oDA ,NULL);
tmpMeta[6] = mmc_mk_cons(_ty, _localAccTypes);
_localAccTypes = tmpMeta[6];
_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: {
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta[6] = MMC_CAR(tmp4_4);
tmpMeta[7] = MMC_CDR(tmp4_4);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[6],0,2) == 0) goto tmp3_end;
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 2));
_cn = tmpMeta[8];
_restTypeSpecs = tmpMeta[7];
_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);
tmpMeta[6] = mmc_mk_cons(_ty, _localAccTypes);
_localAccTypes = tmpMeta[6];
_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: {
if (listEmpty(tmp4_4)) goto tmp3_end;
tmpMeta[6] = MMC_CAR(tmp4_4);
tmpMeta[7] = MMC_CDR(tmp4_4);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[6],1,3) == 0) goto tmp3_end;
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[6]), 2));
_tSpec = tmpMeta[6];
_p = tmpMeta[8];
_restTypeSpecs = tmpMeta[7];
_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_LIT11, 1, 0);
tmpMeta[6] = mmc_mk_box4(5, &SCode_ClassDef_DERIVED__desc, _tSpec, _OMC_LIT10, _OMC_LIT406);
tmpMeta[7] = mmc_mk_box9(5, &SCode_Element_CLASS__desc, _id, _OMC_LIT370, _OMC_LIT371, _OMC_LIT372, _OMC_LIT373, tmpMeta[6], _OMC_LIT256, _OMC_LIT266);
_c = tmpMeta[7];
_cache = omc_Inst_instClass(threadData, _cache, _env, _ih, _OMC_LIT0, _OMC_LIT1, _pre, _c, _dims, _impl, _OMC_LIT22, _OMC_LIT4, _inSets ,NULL ,&_ih ,NULL ,NULL ,&_csets ,&_ty ,NULL ,&_oDA ,NULL);
tmpMeta[6] = mmc_mk_cons(_ty, _localAccTypes);
_localAccTypes = tmpMeta[6];
_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 tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;
tmp3_1 = _inCallingScope;
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,2,0) == 0) goto tmp2_end;
tmpMeta[1] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 1: {
tmpMeta[0] = listAppend(_inAlg, _inExtAlg);
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outAlg = tmpMeta[0];
_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 tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;
tmp3_1 = _inCallingScope;
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,2,0) == 0) goto tmp2_end;
tmpMeta[1] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 1: {
tmpMeta[0] = listAppend(_inEq, _inExtEq);
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outEq = tmpMeta[0];
_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[24] __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_integer tmp6;
modelica_boolean tmp7;
modelica_boolean tmp8;
modelica_boolean tmp9;
modelica_boolean tmp10;
modelica_boolean tmp11;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,0,8) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
if (!listEmpty(tmpMeta[13])) goto tmp3_end;
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
if (!listEmpty(tmpMeta[14])) goto tmp3_end;
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 5));
if (!listEmpty(tmpMeta[15])) goto tmp3_end;
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 6));
if (!listEmpty(tmpMeta[16])) goto tmp3_end;
_els = tmpMeta[12];
_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;
tmpMeta[12] = omc_Mutable_access(threadData, _stopInst);
tmp6 = mmc_unbox_integer(tmpMeta[12]);
if (0 != tmp6) goto goto_2;
tmp7 = valueEq(_OMC_LIT407, _re);
if (0 != tmp7) goto goto_2;
tmp8 = valueEq(_OMC_LIT408, _re);
if (0 != tmp8) goto goto_2;
tmp9 = omc_SCodeUtil_isFunctionRestriction(threadData, _re);
if (0 != tmp9) goto goto_2;
tmp10 = valueEq(_OMC_LIT409, _re);
if (0 != tmp10) goto goto_2;
tmp11 = valueEq(_OMC_LIT410, _re);
if (0 != tmp11) goto goto_2;
tmpMeta[17] = omc_InstUtil_splitElts(threadData, _els, &tmpMeta[12], &tmpMeta[13], &tmpMeta[16]);
_cdefelts = tmpMeta[17];
if (listEmpty(tmpMeta[13])) goto goto_2;
tmpMeta[14] = MMC_CAR(tmpMeta[13]);
tmpMeta[15] = MMC_CDR(tmpMeta[13]);
if (!listEmpty(tmpMeta[16])) goto goto_2;
_extendsclasselts = tmpMeta[12];
_extendselts = tmpMeta[13];
_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);
tmpMeta[17] = omc_InstExtends_instExtendsAndClassExtendsList(threadData, _cache, _env1, _ih, _mods, _pre, _extendselts, _extendsclasselts, _els, _ci_state, _className, _impl, 0, NULL, NULL, NULL, &tmpMeta[12], &tmpMeta[13], &tmpMeta[14], &tmpMeta[15], &tmpMeta[16], NULL);
_cache = tmpMeta[17];
if (!listEmpty(tmpMeta[13])) goto goto_2;
if (!listEmpty(tmpMeta[14])) goto goto_2;
if (!listEmpty(tmpMeta[15])) goto goto_2;
if (!listEmpty(tmpMeta[16])) goto goto_2;
_extcomps = tmpMeta[12];
_compelts_2_elem = omc_List_map(threadData, _extcomps, boxvar_Util_tuple21);
omc_InstUtil_splitElts(threadData, _compelts_2_elem, NULL, NULL, &tmpMeta[12]);
if (!listEmpty(tmpMeta[12])) 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_integer tmp12;
modelica_boolean tmp13;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,0,8) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
_els = tmpMeta[12];
_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;
tmpMeta[12] = omc_Mutable_access(threadData, _stopInst);
tmp12 = mmc_unbox_integer(tmpMeta[12]);
if (0 != tmp12) goto goto_2;
tmp13 = omc_SCodeUtil_isExternalObject(threadData, _els);
if (1 != tmp13) goto goto_2;
_cache = omc_InstFunction_instantiateExternalObject(threadData, _cache, _env, _ih, _els, _mods, _impl, _comment, _info ,&_env ,&_ih ,&_dae ,&_ci_state);
tmpMeta[12] = 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] = tmpMeta[12];
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_integer tmp14;
modelica_boolean tmp15;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,0,8) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 5));
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 6));
tmpMeta[17] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 7));
tmpMeta[18] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 8));
tmpMeta[19] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 9));
_els = tmpMeta[12];
_eqs = tmpMeta[13];
_initeqs = tmpMeta[14];
_alg = tmpMeta[15];
_initalg = tmpMeta[16];
_constrs = tmpMeta[17];
_clsattrs = tmpMeta[18];
_ed = tmpMeta[19];
_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;
tmpMeta[12] = omc_Mutable_access(threadData, _stopInst);
tmp14 = mmc_unbox_integer(tmpMeta[12]);
if (0 != tmp14) goto goto_2;
tmp15 = omc_SCodeUtil_isExternalObject(threadData, _els);
if (0 != tmp15) goto goto_2;
_ci_state1 = omc_ClassInf_trans(threadData, _ci_state, _OMC_LIT394);
tmpMeta[12] = MMC_REFSTRUCTLIT(mmc_nil);
_els = omc_InstUtil_extractConstantPlusDeps(threadData, _els, _instSingleCref, tmpMeta[12], _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);
tmpMeta[12] = mmc_mk_cons(_extcomps, mmc_mk_cons(_compelts_1, mmc_mk_cons(_cdefelts_1, MMC_REFSTRUCTLIT(mmc_nil))));
_compelts_1 = omc_List_flatten(threadData, tmpMeta[12]);
_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);
tmpMeta[12] = MMC_REFSTRUCTLIT(mmc_nil);
_compelts_1 = omc_InstUtil_extractConstantPlusDepsTpl(threadData, _compelts_1, _instSingleCref, tmpMeta[12], _className, _eqs_1, _initeqs_1, _alg_1, _initalg_1 ,&_eqs_1 ,&_initeqs_1 ,&_alg_1 ,&_initalg_1);
if((omc_Flags_getConfigEnum(threadData, _OMC_LIT363) == ((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_LIT412);
_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_LIT363) == ((modelica_integer) 5)))
{
tmpMeta[12] = MMC_REFSTRUCTLIT(mmc_nil);
_eqs_1 = omc_List_fold1(threadData, _eqs_1, boxvar_InstUtil_discretizePDE, _domainFieldsLst, tmpMeta[12]);
}
_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_LIT363) == ((modelica_integer) 5)))
{
tmpMeta[12] = MMC_REFSTRUCTLIT(mmc_nil);
_initeqs_1 = omc_List_fold1(threadData, _initeqs_1, boxvar_InstUtil_discretizePDE, _domainFieldsLst, tmpMeta[12]);
}
_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);
tmpMeta[12] = mmc_mk_cons(_comment, _comments);
_dae8 = omc_Inst_instFunctionAnnotations(threadData, tmpMeta[12], _ci_state6);
_smCompToFlatSM = omc_InstStateMachineUtil_createSMNodeToFlatSMGroupTable(threadData, _dae2);
_dae1 = omc_InstStateMachineUtil_wrapSMCompsInFlatSMs(threadData, _ih, _dae1, _dae2, _smCompToFlatSM, _smInitialCrefs ,&_dae2);
tmpMeta[12] = 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, tmpMeta[12]);
_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_LIT413, _info):_ci_state6);
_cache = omc_InstMeta_fixUniontype(threadData, _cache, _env5, _ci_state6, _inClassDef6 ,&_oty);
{
modelica_metatype tmp18_1;
tmp18_1 = _oty;
{
volatile mmc_switch_type tmp18;
int tmp19;
tmp18 = 0;
for (; tmp18 < 2; tmp18++) {
switch (MMC_SWITCH_CAST(tmp18)) {
case 0: {
if (optionNone(tmp18_1)) goto tmp17_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp18_1), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],20,5) == 0) goto tmp17_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 3));
if (listEmpty(tmpMeta[13])) goto tmp17_end;
tmpMeta[14] = MMC_CAR(tmpMeta[13]);
tmpMeta[15] = MMC_CDR(tmpMeta[13]);
_ty = tmpMeta[12];
tmpMeta[12] = mmc_mk_cons(omc_Types_unparseType(threadData, _ty), MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT416, tmpMeta[12], _info);
goto goto_16;
goto tmp17_done;
}
case 1: {
goto tmp17_done;
}
}
goto tmp17_end;
tmp17_end: ;
}
goto goto_16;
goto_16:;
goto goto_2;
goto tmp17_done;
tmp17_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_integer tmp20;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],0,2) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 3));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_cn = tmpMeta[13];
_ad = tmpMeta[14];
_mod = tmpMeta[15];
_DA = tmpMeta[16];
_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;
tmpMeta[12] = omc_Mutable_access(threadData, _stopInst);
tmp20 = mmc_unbox_integer(tmpMeta[12]);
if (0 != tmp20) goto goto_2;
tmpMeta[17] = omc_Lookup_lookupClass(threadData, _cache, _env, _cn, mmc_mk_some(_info), &tmpMeta[12], &tmpMeta[16]);
_cache = tmpMeta[17];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],2,8) == 0) goto goto_2;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 4));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 6));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[15],10,0) == 0) goto goto_2;
_c = tmpMeta[12];
_cn2 = tmpMeta[13];
_enc2 = tmpMeta[14];
_r = tmpMeta[15];
_cenv = tmpMeta[16];
_env3 = omc_FGraph_openScope(threadData, _cenv, _enc2, _cn2, _OMC_LIT418);
_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));
tmpMeta[12] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[13] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClassIn(threadData, _cache, _env3, tmpMeta[12], _OMC_LIT0, _OMC_LIT1, _OMC_LIT2, _ci_state2, _c, _OMC_LIT365, tmpMeta[13], 0, _callscope, _OMC_LIT4, _OMC_LIT8, mmc_mk_none() ,&_cenv_2 ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL);
tmpMeta[12] = mmc_mk_box2(5, &Mod_ModScope_DERIVED__desc, _cn);
_cache = omc_Mod_elabMod(threadData, _cache, _cenv_2, _ih, _pre, _mod, _impl, tmpMeta[12], _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_LIT399, _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_integer tmp21;
modelica_boolean tmp22;
modelica_boolean tmp23;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],0,2) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 3));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_cn = tmpMeta[13];
_ad = tmpMeta[14];
_mod = tmpMeta[15];
_DA = tmpMeta[16];
_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;
tmpMeta[12] = omc_Mutable_access(threadData, _stopInst);
tmp21 = mmc_unbox_integer(tmpMeta[12]);
if (0 != tmp21) goto goto_2;
tmpMeta[17] = omc_Lookup_lookupClass(threadData, _cache, _env, _cn, mmc_mk_some(_info), &tmpMeta[12], &tmpMeta[16]);
_cache = tmpMeta[17];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],2,8) == 0) goto goto_2;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 4));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 6));
_c = tmpMeta[12];
_cn2 = tmpMeta[13];
_enc2 = tmpMeta[14];
_r = tmpMeta[15];
_cenv = tmpMeta[16];
tmp22 = omc_InstUtil_checkDerivedRestriction(threadData, _re, _r, _cn2);
if (1 != tmp22) goto goto_2;
_valid_connector = omc_ConnectUtil_checkShortConnectorDef(threadData, _ci_state, _DA, _info);
omc_Mutable_update(threadData, _stopInst, mmc_mk_boolean((!_valid_connector)));
tmp23 = _valid_connector;
if (1 != tmp23) 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);
tmpMeta[12] = mmc_mk_box2(5, &Mod_ModScope_DERIVED__desc, _cn);
_cache = omc_Mod_elabMod(threadData, _cache, _parentEnv, _ih, _pre, _mod, _impl, tmpMeta[12], _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_LIT399, _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_integer tmp24;
modelica_boolean tmp25;
modelica_boolean tmp26;
modelica_boolean tmp27;
modelica_boolean tmp28;
modelica_boolean tmp29;
modelica_boolean tmp30;
modelica_boolean tmp31 = 0;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],0,2) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 3));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_cn = tmpMeta[13];
_ad = tmpMeta[14];
_mod = tmpMeta[15];
_DA = tmpMeta[16];
_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;
tmpMeta[12] = omc_Mutable_access(threadData, _stopInst);
tmp24 = mmc_unbox_integer(tmpMeta[12]);
if (0 != tmp24) goto goto_2;
tmp25 = valueEq(_re, _OMC_LIT373);
if (0 != tmp25) goto goto_2;
tmp26 = valueEq(_re, _OMC_LIT419);
if (0 != tmp26) goto goto_2;
tmp27 = valueEq(_re, _OMC_LIT420);
if (0 != tmp27) goto goto_2;
tmp28 = omc_SCodeUtil_isConnector(threadData, _re);
if (0 != tmp28) goto goto_2;
tmp29 = (valueEq(_ad, mmc_mk_none()) || valueEq(_ad, _OMC_LIT395));
if (1 != tmp29) goto goto_2;
tmpMeta[17] = omc_Lookup_lookupClass(threadData, _cache, _env, _cn, mmc_mk_some(_info), &tmpMeta[12], &tmpMeta[16]);
_cache = tmpMeta[17];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],2,8) == 0) goto goto_2;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 6));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 7));
_cn2 = tmpMeta[13];
_r = tmpMeta[14];
_classDefParent = tmpMeta[15];
_parentClassEnv = tmpMeta[16];
tmp30 = omc_InstUtil_checkDerivedRestriction(threadData, _re, _r, _cn2);
if (0 != tmp30) goto goto_2;
{
modelica_metatype tmp34_1;
tmp34_1 = _r;
{
volatile mmc_switch_type tmp34;
int tmp35;
tmp34 = 0;
for (; tmp34 < 2; tmp34++) {
switch (MMC_SWITCH_CAST(tmp34)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp34_1,8,0) == 0) goto tmp33_end;
tmp31 = 0;
goto tmp33_done;
}
case 1: {
tmp31 = (omc_SCodeUtil_restrictionEqual(threadData, _r, _re)?(omc_Mod_isInvariantMod(threadData, _mod) && omc_Mod_isInvariantDAEMod(threadData, _mods)):0);
goto tmp33_done;
}
}
goto tmp33_end;
tmp33_end: ;
}
goto goto_32;
goto_32:;
goto goto_2;
goto tmp33_done;
tmp33_done:;
}
}
if(tmp31)
{
_mod = omc_InstUtil_chainRedeclares(threadData, _mods, _mod);
_parentEnv = omc_FGraph_stripLastScopeRef(threadData, _env, NULL);
tmpMeta[12] = mmc_mk_box2(5, &Mod_ModScope_DERIVED__desc, _cn);
_cache = omc_Mod_elabMod(threadData, _cache, _parentEnv, _ih, _pre, _mod, 0, tmpMeta[12], _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);
tmpMeta[12] = mmc_mk_box2(5, &Mod_ModScope_DERIVED__desc, _cn);
_cache = omc_Mod_elabMod(threadData, _cache, _parentEnv, _ih, _pre, _mod, 0, tmpMeta[12], _info ,&_mod_1);
_mods_1 = omc_Mod_merge(threadData, _mods, _mod_1, _className, 1);
tmpMeta[13] = mmc_mk_box6(4, &SCode_Element_EXTENDS__desc, _cn, _vis, _OMC_LIT10, mmc_mk_none(), _info);
tmpMeta[12] = mmc_mk_cons(tmpMeta[13], MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[14] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[15] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[16] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[17] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[18] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[19] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[20] = mmc_mk_box9(3, &SCode_ClassDef_PARTS__desc, tmpMeta[12], tmpMeta[14], tmpMeta[15], tmpMeta[16], tmpMeta[17], tmpMeta[18], tmpMeta[19], mmc_mk_none());
_cache = omc_Inst_instClassdef2(threadData, _cache, _env, _ih, _store, _mods_1, _pre, _ci_state, _className, tmpMeta[20], _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_integer tmp36;
modelica_boolean tmp37;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],0,2) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 3));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_cn = tmpMeta[13];
_ad = tmpMeta[14];
_mod = tmpMeta[15];
_DA = tmpMeta[16];
_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;
tmpMeta[12] = omc_Mutable_access(threadData, _stopInst);
tmp36 = mmc_unbox_integer(tmpMeta[12]);
if (0 != tmp36) goto goto_2;
tmpMeta[17] = omc_Lookup_lookupClass(threadData, _cache, _env, _cn, mmc_mk_some(_info), &tmpMeta[12], &tmpMeta[16]);
_cache = tmpMeta[17];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],2,8) == 0) goto goto_2;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 4));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 6));
_c = tmpMeta[12];
_cn2 = tmpMeta[13];
_enc2 = tmpMeta[14];
_r = tmpMeta[15];
_cenv = tmpMeta[16];
tmp37 = omc_InstUtil_checkDerivedRestriction(threadData, _re, _r, _cn2);
if (0 != tmp37) 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);
tmpMeta[12] = mmc_mk_box2(5, &Mod_ModScope_DERIVED__desc, _cn);
_cache = omc_Mod_elabMod(threadData, _cache, _parentEnv, _ih, _pre, _mod, _impl, tmpMeta[12], _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_LIT399, _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_boolean tmp38;
modelica_boolean tmp39;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],1,3) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
_mod = tmpMeta[13];
_mods = tmp4_5;
tmp38 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp38) goto goto_2;
tmp39 = (omc_Mod_emptyModOrEquality(threadData, _mods) && omc_SCodeUtil_emptyModOrEquality(threadData, _mod));
if (0 != tmp39) goto goto_2;
tmpMeta[12] = MMC_REFSTRUCTLIT(mmc_nil);
omc_Error_addSourceMessage(threadData, _OMC_LIT423, tmpMeta[12], _info);
goto goto_2;
goto tmp3_done;
}
case 8: {
modelica_boolean tmp40;
modelica_integer tmp41;
modelica_boolean tmp42;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],1,3) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[13],1,1) == 0) goto tmp3_end;
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 2));
if (4 != MMC_STRLEN(tmpMeta[14]) || strcmp(MMC_STRINGDATA(_OMC_LIT310), MMC_STRINGDATA(tmpMeta[14])) != 0) goto tmp3_end;
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 3));
if (listEmpty(tmpMeta[15])) goto tmp3_end;
tmpMeta[16] = MMC_CAR(tmpMeta[15]);
tmpMeta[17] = MMC_CDR(tmpMeta[15]);
if (!listEmpty(tmpMeta[17])) goto tmp3_end;
tmpMeta[18] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 4));
if (!optionNone(tmpMeta[18])) goto tmp3_end;
tmpMeta[19] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta[20] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_tSpec = tmpMeta[16];
_mod = tmpMeta[19];
_DA = tmpMeta[20];
_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;
tmp40 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp40) goto goto_2;
tmpMeta[12] = omc_Mutable_access(threadData, _stopInst);
tmp41 = mmc_unbox_integer(tmpMeta[12]);
if (0 != tmp41) goto goto_2;
tmp42 = (omc_Mod_emptyModOrEquality(threadData, _mods) && omc_SCodeUtil_emptyModOrEquality(threadData, _mod));
if (1 != tmp42) goto goto_2;
tmpMeta[12] = mmc_mk_cons(_tSpec, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[13] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClassDefHelper(threadData, _cache, _env, _ih, tmpMeta[12], _pre, _inst_dims, _impl, tmpMeta[13], _inSets, _info ,NULL ,&_ih ,&_tys ,&_csets ,&_oDA);
_ty = listHead(_tys);
_ty = omc_Types_boxIfUnboxedType(threadData, _ty);
tmpMeta[12] = mmc_mk_box2(20, &DAE_Type_T__METALIST__desc, _ty);
_bc = mmc_mk_some(tmpMeta[12]);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
tmpMeta[12] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _OMC_LIT9;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _OMC_LIT424;
tmpMeta[0+7] = tmpMeta[12];
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = mmc_mk_none();
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 9: {
modelica_boolean tmp43;
modelica_integer tmp44;
modelica_boolean tmp45;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],1,3) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[13],1,1) == 0) goto tmp3_end;
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 2));
if (6 != MMC_STRLEN(tmpMeta[14]) || strcmp(MMC_STRINGDATA(_OMC_LIT312), MMC_STRINGDATA(tmpMeta[14])) != 0) goto tmp3_end;
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 3));
if (listEmpty(tmpMeta[15])) goto tmp3_end;
tmpMeta[16] = MMC_CAR(tmpMeta[15]);
tmpMeta[17] = MMC_CDR(tmpMeta[15]);
if (!listEmpty(tmpMeta[17])) goto tmp3_end;
tmpMeta[18] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 4));
if (!optionNone(tmpMeta[18])) goto tmp3_end;
tmpMeta[19] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta[20] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_tSpec = tmpMeta[16];
_mod = tmpMeta[19];
_DA = tmpMeta[20];
_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;
tmp43 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp43) goto goto_2;
tmpMeta[12] = omc_Mutable_access(threadData, _stopInst);
tmp44 = mmc_unbox_integer(tmpMeta[12]);
if (0 != tmp44) goto goto_2;
tmp45 = (omc_Mod_emptyModOrEquality(threadData, _mods) && omc_SCodeUtil_emptyModOrEquality(threadData, _mod));
if (1 != tmp45) goto goto_2;
tmpMeta[18] = mmc_mk_cons(_tSpec, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[19] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[20] = omc_Inst_instClassDefHelper(threadData, _cache, _env, _ih, tmpMeta[18], _pre, _inst_dims, _impl, tmpMeta[19], _inSets, _info, NULL, &tmpMeta[12], &tmpMeta[13], &tmpMeta[16], &tmpMeta[17]);
_cache = tmpMeta[20];
if (listEmpty(tmpMeta[13])) goto goto_2;
tmpMeta[14] = MMC_CAR(tmpMeta[13]);
tmpMeta[15] = MMC_CDR(tmpMeta[13]);
if (!listEmpty(tmpMeta[15])) goto goto_2;
_ih = tmpMeta[12];
_ty = tmpMeta[14];
_csets = tmpMeta[16];
_oDA = tmpMeta[17];
_ty = omc_Types_boxIfUnboxedType(threadData, _ty);
tmpMeta[12] = mmc_mk_box2(22, &DAE_Type_T__METAOPTION__desc, _ty);
_bc = mmc_mk_some(tmpMeta[12]);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
tmpMeta[12] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _OMC_LIT9;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _OMC_LIT425;
tmpMeta[0+7] = tmpMeta[12];
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = mmc_mk_none();
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 10: {
modelica_boolean tmp46;
modelica_integer tmp47;
modelica_boolean tmp48;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],1,3) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[13],1,1) == 0) goto tmp3_end;
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 2));
if (5 != MMC_STRLEN(tmpMeta[14]) || strcmp(MMC_STRINGDATA(_OMC_LIT314), MMC_STRINGDATA(tmpMeta[14])) != 0) goto tmp3_end;
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 3));
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 4));
if (!optionNone(tmpMeta[16])) goto tmp3_end;
tmpMeta[17] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta[18] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_tSpecs = tmpMeta[15];
_mod = tmpMeta[17];
_DA = tmpMeta[18];
_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;
tmp46 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp46) goto goto_2;
tmpMeta[12] = omc_Mutable_access(threadData, _stopInst);
tmp47 = mmc_unbox_integer(tmpMeta[12]);
if (0 != tmp47) goto goto_2;
tmp48 = (omc_Mod_emptyModOrEquality(threadData, _mods) && omc_SCodeUtil_emptyModOrEquality(threadData, _mod));
if (1 != tmp48) goto goto_2;
tmpMeta[12] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClassDefHelper(threadData, _cache, _env, _ih, _tSpecs, _pre, _inst_dims, _impl, tmpMeta[12], _inSets, _info ,NULL ,&_ih ,&_tys ,&_csets ,&_oDA);
_tys = omc_List_map(threadData, _tys, boxvar_Types_boxIfUnboxedType);
tmpMeta[12] = mmc_mk_box2(21, &DAE_Type_T__METATUPLE__desc, _tys);
_bc = mmc_mk_some(tmpMeta[12]);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
tmpMeta[12] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _OMC_LIT9;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _OMC_LIT426;
tmpMeta[0+7] = tmpMeta[12];
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = mmc_mk_none();
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 11: {
modelica_boolean tmp49;
modelica_integer tmp50;
modelica_boolean tmp51;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],1,3) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[13],1,1) == 0) goto tmp3_end;
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 2));
if (5 != MMC_STRLEN(tmpMeta[14]) || strcmp(MMC_STRINGDATA(_OMC_LIT318), MMC_STRINGDATA(tmpMeta[14])) != 0) goto tmp3_end;
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 3));
if (listEmpty(tmpMeta[15])) goto tmp3_end;
tmpMeta[16] = MMC_CAR(tmpMeta[15]);
tmpMeta[17] = MMC_CDR(tmpMeta[15]);
if (!listEmpty(tmpMeta[17])) goto tmp3_end;
tmpMeta[18] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 4));
if (!optionNone(tmpMeta[18])) goto tmp3_end;
tmpMeta[19] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta[20] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_tSpec = tmpMeta[16];
_mod = tmpMeta[19];
_DA = tmpMeta[20];
_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;
tmp49 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp49) goto goto_2;
tmpMeta[12] = omc_Mutable_access(threadData, _stopInst);
tmp50 = mmc_unbox_integer(tmpMeta[12]);
if (0 != tmp50) goto goto_2;
tmp51 = (omc_Mod_emptyModOrEquality(threadData, _mods) && omc_SCodeUtil_emptyModOrEquality(threadData, _mod));
if (1 != tmp51) goto goto_2;
tmpMeta[18] = mmc_mk_cons(_tSpec, MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[19] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[20] = omc_Inst_instClassDefHelper(threadData, _cache, _env, _ih, tmpMeta[18], _pre, _inst_dims, _impl, tmpMeta[19], _inSets, _info, NULL, &tmpMeta[12], &tmpMeta[13], &tmpMeta[16], &tmpMeta[17]);
_cache = tmpMeta[20];
if (listEmpty(tmpMeta[13])) goto goto_2;
tmpMeta[14] = MMC_CAR(tmpMeta[13]);
tmpMeta[15] = MMC_CDR(tmpMeta[13]);
if (!listEmpty(tmpMeta[15])) goto goto_2;
_ih = tmpMeta[12];
_ty = tmpMeta[14];
_csets = tmpMeta[16];
_oDA = tmpMeta[17];
_ty = omc_Types_boxIfUnboxedType(threadData, _ty);
tmpMeta[12] = mmc_mk_box2(25, &DAE_Type_T__METAARRAY__desc, _ty);
_bc = mmc_mk_some(tmpMeta[12]);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
tmpMeta[12] = mmc_mk_box2(4, &Absyn_Path_IDENT__desc, _className);
tmpMeta[13] = mmc_mk_box2(26, &ClassInf_State_META__ARRAY__desc, tmpMeta[12]);
tmpMeta[14] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _OMC_LIT9;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = tmpMeta[13];
tmpMeta[0+7] = tmpMeta[14];
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = mmc_mk_none();
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 12: {
modelica_integer tmp52;
modelica_boolean tmp53;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],1,3) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[13],1,1) == 0) goto tmp3_end;
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 2));
if (11 != MMC_STRLEN(tmpMeta[14]) || strcmp(MMC_STRINGDATA(_OMC_LIT316), MMC_STRINGDATA(tmpMeta[14])) != 0) goto tmp3_end;
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 3));
if (listEmpty(tmpMeta[15])) goto tmp3_end;
tmpMeta[16] = MMC_CAR(tmpMeta[15]);
tmpMeta[17] = MMC_CDR(tmpMeta[15]);
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[16],0,2) == 0) goto tmp3_end;
tmpMeta[18] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[16]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[18],1,1) == 0) goto tmp3_end;
tmpMeta[19] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[18]), 2));
if (3 != MMC_STRLEN(tmpMeta[19]) || strcmp(MMC_STRINGDATA(_OMC_LIT464), MMC_STRINGDATA(tmpMeta[19])) != 0) goto tmp3_end;
tmpMeta[20] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[16]), 3));
if (!optionNone(tmpMeta[20])) goto tmp3_end;
if (!listEmpty(tmpMeta[17])) goto tmp3_end;
tmpMeta[21] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 4));
if (!optionNone(tmpMeta[21])) goto tmp3_end;
tmpMeta[22] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta[23] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_mod = tmpMeta[22];
_DA = tmpMeta[23];
_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;
tmpMeta[12] = omc_Mutable_access(threadData, _stopInst);
tmp52 = mmc_unbox_integer(tmpMeta[12]);
if (0 != tmp52) goto goto_2;
tmp53 = (omc_Mod_emptyModOrEquality(threadData, _mods) && omc_SCodeUtil_emptyModOrEquality(threadData, _mod));
if (1 != tmp53) goto goto_2;
tmpMeta[12] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[13] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClassDefHelper(threadData, _cache, _env, _ih, tmpMeta[12], _pre, _inst_dims, _impl, tmpMeta[13], _inSets, _info ,NULL ,&_ih ,NULL ,&_csets ,&_oDA);
tmpMeta[12] = mmc_mk_box2(27, &DAE_Type_T__METAPOLYMORPHIC__desc, _className);
_bc = mmc_mk_some(tmpMeta[12]);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
tmpMeta[12] = mmc_mk_box2(4, &Absyn_Path_IDENT__desc, _className);
tmpMeta[13] = mmc_mk_box2(27, &ClassInf_State_META__POLYMORPHIC__desc, tmpMeta[12]);
tmpMeta[14] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _OMC_LIT9;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = tmpMeta[13];
tmpMeta[0+7] = tmpMeta[14];
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = mmc_mk_none();
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 13: {
modelica_boolean tmp54;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],1,3) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[13],1,1) == 0) goto tmp3_end;
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 2));
if (11 != MMC_STRLEN(tmpMeta[14]) || strcmp(MMC_STRINGDATA(_OMC_LIT316), MMC_STRINGDATA(tmpMeta[14])) != 0) goto tmp3_end;
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
_mod = tmpMeta[15];
_mods = tmp4_5;
tmp54 = (omc_Mod_emptyModOrEquality(threadData, _mods) && omc_SCodeUtil_emptyModOrEquality(threadData, _mod));
if (1 != tmp54) goto goto_2;
tmpMeta[12] = mmc_mk_cons(_className, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT429, tmpMeta[12], _info);
goto goto_2;
goto tmp3_done;
}
case 14: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],1,3) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[13],1,1) == 0) goto tmp3_end;
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 2));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 3));
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 4));
if (!optionNone(tmpMeta[16])) goto tmp3_end;
tmpMeta[17] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta[18] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_str = tmpMeta[14];
_tSpecs = tmpMeta[15];
_mod = tmpMeta[17];
_DA = tmpMeta[18];
_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_LIT438);
tmpMeta[12] = mmc_mk_box2(4, &Absyn_Path_IDENT__desc, _str);
tmpMeta[13] = mmc_mk_box4(4, &Absyn_TypeSpec_TCOMPLEX__desc, tmpMeta[12], _tSpecs, mmc_mk_none());
tmpMeta[14] = mmc_mk_box4(5, &SCode_ClassDef_DERIVED__desc, tmpMeta[13], _mod, _DA);
tmpMeta[0+0] = omc_Inst_instClassdef2(threadData, _cache, _env, _ih, _store, _mods, _pre, _ci_state, _className, tmpMeta[14], _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_boolean tmp55;
modelica_integer tmp56;
modelica_boolean tmp57;
modelica_boolean tmp58;
modelica_string tmp61;
modelica_string tmp62;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],1,3) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 3));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 4));
if (!optionNone(tmpMeta[15])) goto tmp3_end;
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
tmpMeta[17] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
_cn = tmpMeta[13];
_tSpecs = tmpMeta[14];
_mod = tmpMeta[16];
_DA = tmpMeta[17];
_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;
tmp55 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp55) goto goto_2;
tmpMeta[12] = omc_Mutable_access(threadData, _stopInst);
tmp56 = mmc_unbox_integer(tmpMeta[12]);
if (0 != tmp56) goto goto_2;
tmp57 = (omc_Mod_emptyModOrEquality(threadData, _mods) && omc_SCodeUtil_emptyModOrEquality(threadData, _mod));
if (1 != tmp57) goto goto_2;
tmp58 = listMember(omc_AbsynUtil_pathString(threadData, _cn, _OMC_LIT11, 1, 0), _OMC_LIT445);
if (0 != tmp58) goto goto_2;
tmpMeta[18] = omc_Lookup_lookupClass(threadData, _cache, _env, _cn, mmc_mk_some(_info), &tmpMeta[12], &tmpMeta[17]);
_cache = tmpMeta[18];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],2,8) == 0) goto goto_2;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 6));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[14],18,1) == 0) goto goto_2;
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[14]), 2));
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 7));
_cn2 = tmpMeta[13];
_typeVars = tmpMeta[15];
_classDef = tmpMeta[16];
_cenv = tmpMeta[17];
_cache = omc_Inst_makeFullyQualifiedIdent(threadData, _cache, _cenv, _cn2, _OMC_LIT254 ,&_fq_class);
tmpMeta[12] = mmc_mk_box3(25, &ClassInf_State_META__UNIONTYPE__desc, _fq_class, _typeVars);
_new_ci_state = tmpMeta[12];
tmpMeta[14] = omc_InstMeta_fixUniontype(threadData, _cache, _env, _new_ci_state, _classDef, &tmpMeta[12]);
_cache = tmpMeta[14];
if (optionNone(tmpMeta[12])) goto goto_2;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[13],20,5) == 0) goto goto_2;
_ty = tmpMeta[13];
tmpMeta[12] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClassDefHelper(threadData, _cache, _env, _ih, _tSpecs, _pre, _inst_dims, _impl, tmpMeta[12], _inSets, _info ,NULL ,&_ih ,&_tys ,&_csets ,&_oDA);
{
modelica_metatype __omcQ_24tmpVar7;
modelica_metatype* tmp59;
modelica_metatype __omcQ_24tmpVar6;
int tmp60;
modelica_metatype _t_loopVar = 0;
modelica_metatype _t;
_t_loopVar = _tys;
tmpMeta[13] = MMC_REFSTRUCTLIT(mmc_nil);
__omcQ_24tmpVar7 = tmpMeta[13];
tmp59 = &__omcQ_24tmpVar7;
while(1) {
tmp60 = 1;
if (!listEmpty(_t_loopVar)) {
_t = MMC_CAR(_t_loopVar);
_t_loopVar = MMC_CDR(_t_loopVar);
tmp60--;
}
if (tmp60 == 0) {
__omcQ_24tmpVar6 = omc_Types_boxIfUnboxedType(threadData, _t);
*tmp59 = mmc_mk_cons(__omcQ_24tmpVar6,0);
tmp59 = &MMC_CDR(*tmp59);
} else if (tmp60 == 1) {
break;
} else {
goto goto_2;
}
}
*tmp59 = mmc_mk_nil();
tmpMeta[12] = __omcQ_24tmpVar7;
}
_tys = tmpMeta[12];
if((!(listLength(_tys) == listLength(_typeVars))))
{
tmp61 = modelica_integer_to_modelica_string(listLength(_typeVars), ((modelica_integer) 0), 1);
tmp62 = modelica_integer_to_modelica_string(listLength(_tys), ((modelica_integer) 0), 1);
tmpMeta[12] = mmc_mk_cons(omc_AbsynUtil_pathString(threadData, _fq_class, _OMC_LIT11, 1, 0), mmc_mk_cons(tmp61, mmc_mk_cons(tmp62, MMC_REFSTRUCTLIT(mmc_nil))));
omc_Error_addSourceMessage(threadData, _OMC_LIT448, tmpMeta[12], _info);
goto goto_2;
}
_ty = omc_Types_setTypeVariables(threadData, _ty, _tys);
_oDA = omc_SCodeUtil_mergeAttributes(threadData, _DA, _oDA);
_bc = mmc_mk_some(_ty);
tmpMeta[12] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _OMC_LIT9;
tmpMeta[0+5] = _csets;
tmpMeta[0+6] = _new_ci_state;
tmpMeta[0+7] = tmpMeta[12];
tmpMeta[0+8] = _bc;
tmpMeta[0+9] = _oDA;
tmpMeta[0+10] = mmc_mk_none();
tmpMeta[0+11] = _graph;
goto tmp3_done;
}
case 16: {
modelica_boolean tmp63;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],1,3) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 4));
if (optionNone(tmpMeta[13])) goto tmp3_end;
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 1));
_tSpec = tmpMeta[12];
tmp63 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp63) goto goto_2;
_cns = omc_Dump_unparseTypeSpec(threadData, _tSpec);
tmpMeta[12] = mmc_mk_cons(_cns, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT451, tmpMeta[12], _info);
goto goto_2;
goto tmp3_done;
}
case 17: {
modelica_boolean tmp64;
modelica_boolean tmp65;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],1,3) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 3));
_tSpec = tmpMeta[12];
_cn = tmpMeta[13];
_tSpecs = tmpMeta[14];
tmp4 += 2;
tmp64 = omc_Config_acceptMetaModelicaGrammar(threadData);
if (1 != tmp64) goto goto_2;
tmpMeta[12] = mmc_mk_box2(0, omc_AbsynUtil_pathString(threadData, _cn, _OMC_LIT11, 1, 0), mmc_mk_boolean((listLength(_tSpecs) == ((modelica_integer) 1))));
tmp65 = listMember(tmpMeta[12], _OMC_LIT459);
if (0 != tmp65) goto goto_2;
_cns = omc_Dump_unparseTypeSpec(threadData, _tSpec);
tmpMeta[12] = mmc_mk_cons(_cns, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT451, tmpMeta[12], _info);
goto goto_2;
goto tmp3_done;
}
case 18: {
modelica_integer tmp66;
modelica_boolean tmp67;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],0,2) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
_cn = tmpMeta[13];
_cache = tmp4_1;
_env = tmp4_2;
tmpMeta[12] = omc_Mutable_access(threadData, _stopInst);
tmp66 = mmc_unbox_integer(tmpMeta[12]);
if (0 != tmp66) goto goto_2;
tmp67 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
omc_Lookup_lookupClass(threadData, _cache, _env, _cn, mmc_mk_none(), NULL, NULL);
tmp67 = 1;
goto goto_68;
goto_68:;
MMC_CATCH_INTERNAL(mmc_jumper)
if (tmp67) {goto goto_2;}
_cns = omc_AbsynUtil_pathString(threadData, _cn, _OMC_LIT11, 1, 0);
_scope_str = omc_FGraph_printGraphPathStr(threadData, _env);
tmpMeta[12] = mmc_mk_cons(_cns, mmc_mk_cons(_scope_str, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT398, tmpMeta[12], _info);
goto goto_2;
goto tmp3_done;
}
case 19: {
modelica_boolean tmp69;
modelica_boolean tmp70;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,3) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],0,2) == 0) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 2));
_cn = tmpMeta[13];
_cache = tmp4_1;
_env = tmp4_2;
tmp69 = omc_Flags_isSet(threadData, _OMC_LIT274);
if (1 != tmp69) goto goto_2;
tmp70 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
omc_Lookup_lookupClass(threadData, _cache, _env, _cn, mmc_mk_none(), NULL, NULL);
tmp70 = 1;
goto goto_71;
goto_71:;
MMC_CATCH_INTERNAL(mmc_jumper)
if (tmp70) {goto goto_2;}
omc_Debug_trace(threadData, _OMC_LIT460);
omc_Debug_trace(threadData, omc_AbsynUtil_pathString(threadData, _cn, _OMC_LIT11, 1, 0));
omc_Debug_trace(threadData, _OMC_LIT461);
omc_Debug_trace(threadData, omc_FGraph_printGraphStr(threadData, _env));
goto goto_2;
goto tmp3_done;
}
case 20: {
modelica_boolean tmp72;
tmp72 = omc_Flags_isSet(threadData, _OMC_LIT274);
if (1 != tmp72) goto goto_2;
omc_Debug_traceln(threadData, _OMC_LIT462);
_s = omc_FGraph_printGraphPathStr(threadData, _inEnv);
tmpMeta[12] = stringAppend(_OMC_LIT463,_s);
omc_Debug_traceln(threadData, tmpMeta[12]);
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[18] __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: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,0,8) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
if (!listEmpty(tmpMeta[13])) goto tmp3_end;
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
if (!listEmpty(tmpMeta[14])) goto tmp3_end;
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 5));
if (!listEmpty(tmpMeta[15])) goto tmp3_end;
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 6));
if (!listEmpty(tmpMeta[16])) goto tmp3_end;
_els = tmpMeta[12];
_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_LIT465);
tmpMeta[17] = omc_InstUtil_splitElts(threadData, _els, &tmpMeta[12], &tmpMeta[13], &tmpMeta[16]);
_cdefelts = tmpMeta[17];
if (!listEmpty(tmpMeta[12])) goto goto_2;
if (listEmpty(tmpMeta[13])) goto goto_2;
tmpMeta[14] = MMC_CAR(tmpMeta[13]);
tmpMeta[15] = MMC_CDR(tmpMeta[13]);
_extendselts = tmpMeta[13];
_compelts = tmpMeta[16];
_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_LIT22, _graph, _inSets, 1 ,&_env3 ,&_ih ,&_store ,&_dae1 ,&_csets ,NULL ,&_tys ,&_graph ,NULL);
_mods = omc_Mod_removeFirstSubsRedecl(threadData, _mods);
omc_ErrorExt_rollBack(threadData, _OMC_LIT465);
_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_boolean tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,0,8) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 3));
if (!listEmpty(tmpMeta[12])) goto tmp3_end;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
if (!listEmpty(tmpMeta[13])) goto tmp3_end;
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 5));
if (!listEmpty(tmpMeta[14])) goto tmp3_end;
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 6));
if (!listEmpty(tmpMeta[15])) goto tmp3_end;
tmp6 = omc_ErrorExt_isTopCheckpoint(threadData, _OMC_LIT465);
if (1 != tmp6) goto goto_2;
omc_ErrorExt_rollBack(threadData, _OMC_LIT465);
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_boolean _success;
modelica_boolean tmp1 = 0;
modelica_metatype tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
_outCache = _inCache;
_outEnv = _inEnv;
_outIH = _inIH;
_outState = _inState;
tmpMeta[0] = MMC_REFSTRUCTLIT(mmc_nil);
_outVars = tmpMeta[0];
{
volatile modelica_metatype tmp4_1;
tmp4_1 = _inClass;
{
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: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (4 != MMC_STRLEN(tmpMeta[1]) || strcmp(MMC_STRINGDATA(_OMC_LIT297), MMC_STRINGDATA(tmpMeta[1])) != 0) goto tmp3_end;
tmp4 += 4;
tmp1 = 1;
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (7 != MMC_STRLEN(tmpMeta[1]) || strcmp(MMC_STRINGDATA(_OMC_LIT294), MMC_STRINGDATA(tmpMeta[1])) != 0) goto tmp3_end;
tmp4 += 3;
tmp1 = 1;
goto tmp3_done;
}
case 2: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (6 != MMC_STRLEN(tmpMeta[1]) || strcmp(MMC_STRINGDATA(_OMC_LIT300), MMC_STRINGDATA(tmpMeta[1])) != 0) goto tmp3_end;
tmp4 += 2;
tmp1 = 1;
goto tmp3_done;
}
case 3: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (7 != MMC_STRLEN(tmpMeta[1]) || strcmp(MMC_STRINGDATA(_OMC_LIT291), MMC_STRINGDATA(tmpMeta[1])) != 0) goto tmp3_end;
tmp4 += 1;
tmp1 = 1;
goto tmp3_done;
}
case 4: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
if (5 != MMC_STRLEN(tmpMeta[1]) || strcmp(MMC_STRINGDATA(_OMC_LIT512), MMC_STRINGDATA(tmpMeta[1])) != 0) goto tmp3_end;
if (!(omc_Flags_getConfigEnum(threadData, _OMC_LIT511) == ((modelica_integer) 33))) goto tmp3_end;
tmp1 = 1;
goto tmp3_done;
}
case 5: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_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);
tmp1 = 1;
goto tmp3_done;
}
case 6: {
tmp1 = 0;
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:;
}
}
_success = tmp1;
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 tmpMeta[8] __attribute__((unused)) = {0};
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_LIT22);
if(omc_Flags_isSet(threadData, _OMC_LIT21))
{
{
{
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: {
tmpMeta[0] = omc_InstHashTable_get(threadData, _cache_path);
if (listEmpty(tmpMeta[0])) goto goto_1;
tmpMeta[1] = MMC_CAR(tmpMeta[0]);
tmpMeta[2] = MMC_CDR(tmpMeta[0]);
if (listEmpty(tmpMeta[2])) goto goto_1;
tmpMeta[3] = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = MMC_CDR(tmpMeta[2]);
if (optionNone(tmpMeta[3])) goto goto_1;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[5],1,2) == 0) goto goto_1;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 2));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[5]), 3));
if (!listEmpty(tmpMeta[4])) goto goto_1;
_inputs = tmpMeta[6];
_outputs = tmpMeta[7];
tmpMeta[0] = _inputs;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 1));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 4));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],2,8) == 0) goto goto_1;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 5));
_m = tmpMeta[1];
_pre = tmpMeta[2];
_st = tmpMeta[3];
_e = tmpMeta[4];
_dims = tmpMeta[5];
omc_InstUtil_prefixEqualUnlessBasicType(threadData, _pre, _prefix, _cls);
if((((valueEq(_dims, _instDims) && valueEq(_m, _mod)) && valueEq(_st, _state)) && valueEq(_e, _cls)))
{
tmpMeta[0] = _outputs;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 1));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 3));
_env = tmpMeta[1];
_state = tmpMeta[2];
_vars = tmpMeta[3];
omc_Inst_showCacheInfo(threadData, _OMC_LIT513, _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)))
{
tmpMeta[0] = mmc_mk_cons(_OMC_LIT517, mmc_mk_cons(omc_FGraph_printGraphPathStr(threadData, _env), MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT516, tmpMeta[0], omc_SCodeUtil_elementInfo(threadData, _cls));
MMC_THROW_INTERNAL();
}
{
{
volatile mmc_switch_type tmp7;
int tmp8;
tmp7 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp6_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp7 < 2; tmp7++) {
switch (MMC_SWITCH_CAST(tmp7)) {
case 0: {
_partial_inst = omc_System_getPartialInstantiation(threadData);
omc_System_setPartialInstantiation(threadData, 1);
tmpMeta[0] = mmc_mk_box5(0, _mod, _prefix, _state, _cls, _instDims);
_inputs = tmpMeta[0];
_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);
tmpMeta[0] = mmc_mk_box3(0, _env, _state, _vars);
_outputs = tmpMeta[0];
omc_Inst_showCacheInfo(threadData, _OMC_LIT518, _cache_path);
tmpMeta[0] = mmc_mk_box3(4, &InstHashTable_CachedInstItem_FUNC__partialInstClassIn__desc, _inputs, _outputs);
omc_InstHashTable_addToInstCache(threadData, _cache_path, mmc_mk_none(), mmc_mk_some(tmpMeta[0]));
goto tmp6_done;
}
case 1: {
modelica_boolean tmp9;
tmp9 = omc_Flags_isSet(threadData, _OMC_LIT274);
if (1 != tmp9) goto goto_5;
tmpMeta[0] = stringAppend(_OMC_LIT519,omc_SCodeUtil_elementName(threadData, _cls));
tmpMeta[1] = stringAppend(tmpMeta[0],_OMC_LIT520);
tmpMeta[2] = stringAppend(tmpMeta[1],omc_FGraph_printGraphPathStr(threadData, _env));
omc_Debug_traceln(threadData, tmpMeta[2]);
goto goto_5;
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 < 2) {
goto tmp6_top;
}
MMC_THROW_INTERNAL();
tmp6_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 tmpMeta[1] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;
tmp3_1 = _inInstDims;
{
modelica_metatype _ty = NULL;
modelica_metatype _dims = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (!listEmpty(tmp3_1)) goto tmp2_end;
tmpMeta[0] = mmc_mk_none();
goto tmp2_done;
}
case 1: {
_dims = omc_List_last(threadData, _inInstDims);
_ty = omc_Expression_liftArrayLeftList(threadData, _inType, _dims);
tmpMeta[0] = mmc_mk_some(_ty);
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outOptType = tmpMeta[0];
_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 tmpMeta[10] __attribute__((unused)) = {0};
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;
tmp3_1 = _inCache;
tmp3_2 = _inEnv;
tmp3_3 = _optVal;
tmp3_4 = _inExpectedTp;
tmp3_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 tmp3;
int tmp4;
tmp3 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp2_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp3 < 9; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
modelica_boolean tmp5;
if (optionNone(tmp3_3)) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_3), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmp3_5,0,2) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_5), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_5), 3));
_v = tmpMeta[1];
_bindTp = tmpMeta[2];
_c = tmpMeta[3];
_expectedTp = tmp3_4;
tmp5 = valueEq(_c, _OMC_LIT521);
if (0 != tmp5) goto goto_1;
_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);
tmpMeta[1] = mmc_mk_box5(4, &DAE_Binding_EQBOUND__desc, _bind1, mmc_mk_some(_v), _OMC_LIT524, _OMC_LIT525);
tmpMeta[2] = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _id, _OMC_LIT523, _t_1, tmpMeta[1], mmc_mk_boolean(0), mmc_mk_none());
tmpMeta[0] = tmpMeta[2];
goto tmp2_done;
}
case 1: {
modelica_boolean tmp6;
modelica_boolean tmp7;
if (optionNone(tmp3_3)) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_3), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmp3_5,0,2) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_5), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],6,2) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 3));
if (listEmpty(tmpMeta[3])) goto tmp2_end;
tmpMeta[4] = MMC_CAR(tmpMeta[3]);
tmpMeta[5] = MMC_CDR(tmpMeta[3]);
if (!listEmpty(tmpMeta[5])) goto tmp2_end;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_5), 3));
_v = tmpMeta[1];
_bindTp = tmpMeta[2];
_d = tmpMeta[4];
_c = tmpMeta[6];
_expectedTp = tmp3_4;
tmp6 = valueEq(_c, _OMC_LIT521);
if (0 != tmp6) goto goto_1;
tmp7 = omc_Flags_getConfigBool(threadData, _OMC_LIT531);
if (1 != tmp7) goto goto_1;
_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);
tmpMeta[1] = mmc_mk_box5(4, &DAE_Binding_EQBOUND__desc, _bind1, mmc_mk_some(_v), _OMC_LIT524, _OMC_LIT525);
tmpMeta[2] = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _id, _OMC_LIT523, _t_1, tmpMeta[1], mmc_mk_boolean(0), mmc_mk_none());
tmpMeta[0] = tmpMeta[2];
goto tmp2_done;
}
case 2: {
modelica_boolean tmp8;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_5,0,2) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_5), 2));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_5), 3));
_bindTp = tmpMeta[1];
_c = tmpMeta[2];
_cache = tmp3_1;
_env = tmp3_2;
_expectedTp = tmp3_4;
tmp8 = valueEq(_c, _OMC_LIT521);
if (0 != tmp8) goto goto_1;
_bind1 = omc_Types_matchType(threadData, _bind, _bindTp, _expectedTp, 1 ,&_t_1);
_cache = omc_Ceval_ceval(threadData, _cache, _env, _bind1, 0, _OMC_LIT532, ((modelica_integer) 0) ,&_v);
tmpMeta[1] = mmc_mk_box5(4, &DAE_Binding_EQBOUND__desc, _bind1, mmc_mk_some(_v), _OMC_LIT524, _OMC_LIT525);
tmpMeta[2] = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _id, _OMC_LIT523, _t_1, tmpMeta[1], mmc_mk_boolean(0), mmc_mk_none());
tmpMeta[0] = tmpMeta[2];
goto tmp2_done;
}
case 3: {
modelica_boolean tmp9;
modelica_boolean tmp10;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_5,0,2) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_5), 2));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[1],6,2) == 0) goto tmp2_end;
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 3));
if (listEmpty(tmpMeta[2])) goto tmp2_end;
tmpMeta[3] = MMC_CAR(tmpMeta[2]);
tmpMeta[4] = MMC_CDR(tmpMeta[2]);
if (!listEmpty(tmpMeta[4])) goto tmp2_end;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_5), 3));
_bindTp = tmpMeta[1];
_d = tmpMeta[3];
_c = tmpMeta[5];
_cache = tmp3_1;
_env = tmp3_2;
_expectedTp = tmp3_4;
tmp9 = valueEq(_c, _OMC_LIT521);
if (0 != tmp9) goto goto_1;
tmp10 = omc_Flags_getConfigBool(threadData, _OMC_LIT531);
if (1 != tmp10) goto goto_1;
_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_LIT532, ((modelica_integer) 0) ,&_v);
tmpMeta[1] = mmc_mk_box5(4, &DAE_Binding_EQBOUND__desc, _bind1, mmc_mk_some(_v), _OMC_LIT524, _OMC_LIT525);
tmpMeta[2] = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _id, _OMC_LIT523, _t_1, tmpMeta[1], mmc_mk_boolean(0), mmc_mk_none());
tmpMeta[0] = tmpMeta[2];
goto tmp2_done;
}
case 4: {
modelica_boolean tmp11;
modelica_boolean tmp12;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_5,0,2) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_5), 2));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_5), 3));
_bindTp = tmpMeta[1];
_c = tmpMeta[2];
_expectedTp = tmp3_4;
if(omc_Flags_getConfigBool(threadData, _OMC_LIT536))
{
tmp11 = valueEq(_c, _OMC_LIT521);
if (1 != tmp11) goto goto_1;
}
else
{
tmp12 = valueEq(_c, _OMC_LIT521);
if (0 != tmp12) goto goto_1;
}
_bind1 = omc_Types_matchType(threadData, _bind, _bindTp, _expectedTp, 1 ,&_t_1);
tmpMeta[1] = mmc_mk_box5(4, &DAE_Binding_EQBOUND__desc, _bind1, mmc_mk_none(), _OMC_LIT524, _OMC_LIT525);
tmpMeta[2] = mmc_mk_box7(3, &DAE_Var_TYPES__VAR__desc, _id, _OMC_LIT523, _t_1, tmpMeta[1], mmc_mk_boolean(0), mmc_mk_none());
tmpMeta[0] = tmpMeta[2];
goto tmp2_done;
}
case 5: {
modelica_boolean tmp13;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_5,0,2) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_5), 3));
_c = tmpMeta[1];
tmp13 = valueEq(_c, _OMC_LIT521);
if (1 != tmp13) goto goto_1;
_s = omc_ExpressionDump_printExpStr(threadData, _bind);
tmpMeta[1] = mmc_mk_cons(_id, mmc_mk_cons(_OMC_LIT540, mmc_mk_cons(_s, mmc_mk_cons(_OMC_LIT541, MMC_REFSTRUCTLIT(mmc_nil)))));
omc_Error_addMessage(threadData, _OMC_LIT539, tmpMeta[1]);
goto goto_1;
goto tmp2_done;
}
case 6: {
modelica_boolean tmp14;
if (mmc__uniontype__metarecord__typedef__equal(tmp3_5,0,2) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_5), 2));
_bindTp = tmpMeta[1];
_expectedTp = tmp3_4;
tmp14 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
omc_Types_matchType(threadData, _bind, _bindTp, _expectedTp, 1, NULL);
tmp14 = 1;
goto goto_15;
goto_15:;
MMC_CATCH_INTERNAL(mmc_jumper)
if (tmp14) {goto goto_1;}
tmpMeta[1] = stringAppend(_OMC_LIT542,_id);
tmpMeta[2] = stringAppend(tmpMeta[1],_OMC_LIT543);
tmpMeta[3] = stringAppend(tmpMeta[2],omc_Types_unparseType(threadData, _bindTp));
_s1 = tmpMeta[3];
_s2 = omc_Types_unparseType(threadData, _expectedTp);
tmpMeta[1] = mmc_mk_cons(_s1, mmc_mk_cons(_s2, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addMessage(threadData, _OMC_LIT546, tmpMeta[1]);
goto goto_1;
goto tmp2_done;
}
case 7: {
modelica_boolean tmp16;
if (optionNone(tmp3_3)) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_3), 1));
_v = tmpMeta[1];
_expectedTp = tmp3_4;
tmp16 = omc_Flags_isSet(threadData, _OMC_LIT274);
if (1 != tmp16) goto goto_1;
tmpMeta[1] = stringAppend(_OMC_LIT547,_id);
tmpMeta[2] = stringAppend(tmpMeta[1],_OMC_LIT548);
tmpMeta[3] = stringAppend(tmpMeta[2],omc_ValuesUtil_printValStr(threadData, _v));
tmpMeta[4] = stringAppend(tmpMeta[3],_OMC_LIT549);
tmpMeta[5] = stringAppend(tmpMeta[4],omc_ExpressionDump_printExpStr(threadData, _bind));
tmpMeta[6] = stringAppend(tmpMeta[5],_OMC_LIT550);
tmpMeta[7] = stringAppend(tmpMeta[6],omc_Types_printTypeStr(threadData, _expectedTp));
tmpMeta[8] = stringAppend(tmpMeta[7],_OMC_LIT551);
tmpMeta[9] = stringAppend(tmpMeta[8],omc_Types_printPropStr(threadData, _bindProp));
omc_Debug_traceln(threadData, tmpMeta[9]);
goto goto_1;
goto tmp2_done;
}
case 8: {
modelica_boolean tmp17;
_expectedTp = tmp3_4;
tmp17 = omc_Flags_isSet(threadData, _OMC_LIT274);
if (1 != tmp17) goto goto_1;
tmpMeta[1] = stringAppend(_OMC_LIT547,_id);
tmpMeta[2] = stringAppend(tmpMeta[1],_OMC_LIT552);
tmpMeta[3] = stringAppend(tmpMeta[2],_OMC_LIT549);
tmpMeta[4] = stringAppend(tmpMeta[3],omc_ExpressionDump_printExpStr(threadData, _bind));
tmpMeta[5] = stringAppend(tmpMeta[4],_OMC_LIT550);
tmpMeta[6] = stringAppend(tmpMeta[5],omc_Types_printTypeStr(threadData, _expectedTp));
tmpMeta[7] = stringAppend(tmpMeta[6],_OMC_LIT551);
tmpMeta[8] = stringAppend(tmpMeta[7],omc_Types_printPropStr(threadData, _bindProp));
omc_Debug_traceln(threadData, tmpMeta[8]);
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 < 9) {
goto tmp2_top;
}
MMC_THROW_INTERNAL();
tmp2_done2:;
}
}
_var = tmpMeta[0];
_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 tmpMeta[9] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;
tmp3_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 tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[2],0,5) == 0) goto tmp2_end;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 5));
if (optionNone(tmpMeta[3])) goto tmp2_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],0,5) == 0) goto tmp2_end;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 3));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 4));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[2]), 6));
_name = tmpMeta[1];
_exp = tmpMeta[5];
_val = tmpMeta[6];
_p = tmpMeta[7];
_info = tmpMeta[8];
_ty = omc_Inst_getRealAttributeType(threadData, _name, _inBaseType, _info);
tmpMeta[0] = omc_Inst_instBuiltinAttribute(threadData, _inCache, _inEnv, _name, _val, _exp, _ty, _p);
goto tmp2_done;
}
case 1: {
modelica_boolean tmp5;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
_name = tmpMeta[1];
tmp5 = omc_Flags_isSet(threadData, _OMC_LIT274);
if (1 != tmp5) goto goto_1;
tmpMeta[1] = stringAppend(_OMC_LIT553,_name);
omc_Debug_traceln(threadData, tmpMeta[1]);
goto goto_1;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outVar = tmpMeta[0];
_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 tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;
tmp3_1 = _inMod;
{
modelica_metatype _submods = NULL;
int tmp3;
{
switch (MMC_SWITCH_CAST(valueConstructor(tmp3_1))) {
case 3: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,0,5) == 0) goto tmp2_end;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
_submods = tmpMeta[1];
tmpMeta[0] = omc_List_map4(threadData, _submods, boxvar_Inst_instBasicTypeAttributes2, _inCache, _inEnv, _inBaseType, ((modelica_fnptr) _inTypeFunc));
goto tmp2_done;
}
case 5: {
tmpMeta[1] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
case 4: {
tmpMeta[1] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0] = tmpMeta[1];
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outVars = tmpMeta[0];
_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 tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp3_1;
tmp3_1 = _inAttrName;
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 6; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (8 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT560), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT554;
goto tmp2_done;
}
case 1: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT143), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _inBaseType;
goto tmp2_done;
}
case 2: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT140), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _inBaseType;
goto tmp2_done;
}
case 3: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT561), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _inBaseType;
goto tmp2_done;
}
case 4: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT562), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT555;
goto tmp2_done;
}
case 5: {
tmpMeta[1] = mmc_mk_cons(_inAttrName, mmc_mk_cons(_OMC_LIT559, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT558, tmpMeta[1], _inInfo);
goto goto_1;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outType = tmpMeta[0];
_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 tmpMeta[1] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 0; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outType = tmpMeta[0];
_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 tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp3_1;
tmp3_1 = _inAttrName;
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 4; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (8 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT560), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT554;
goto tmp2_done;
}
case 1: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT561), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _inBaseType;
goto tmp2_done;
}
case 2: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT562), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT555;
goto tmp2_done;
}
case 3: {
tmpMeta[1] = mmc_mk_cons(_inAttrName, mmc_mk_cons(_OMC_LIT291, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT558, tmpMeta[1], _inInfo);
goto goto_1;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outType = tmpMeta[0];
_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 tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp3_1;
tmp3_1 = _inAttrName;
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 3; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (8 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT560), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT554;
goto tmp2_done;
}
case 1: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT561), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _inBaseType;
goto tmp2_done;
}
case 2: {
tmpMeta[1] = mmc_mk_cons(_inAttrName, mmc_mk_cons(_OMC_LIT300, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT558, tmpMeta[1], _inInfo);
goto goto_1;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outType = tmpMeta[0];
_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 tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp3_1;
tmp3_1 = _inAttrName;
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 9; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (8 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT560), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT554;
goto tmp2_done;
}
case 1: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT143), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _inBaseType;
goto tmp2_done;
}
case 2: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT140), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _inBaseType;
goto tmp2_done;
}
case 3: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT561), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _inBaseType;
goto tmp2_done;
}
case 4: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT562), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT555;
goto tmp2_done;
}
case 5: {
if (7 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT600), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _inBaseType;
goto tmp2_done;
}
case 6: {
if (9 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT601), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT581;
goto tmp2_done;
}
case 7: {
if (12 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT602), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT599;
goto tmp2_done;
}
case 8: {
tmpMeta[1] = mmc_mk_cons(_inAttrName, mmc_mk_cons(_OMC_LIT294, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT558, tmpMeta[1], _inInfo);
goto goto_1;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outType = tmpMeta[0];
_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 tmpMeta[2] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp3_1;
tmp3_1 = _inAttrName;
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 12; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (8 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT560), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT554;
goto tmp2_done;
}
case 1: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT631), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT554;
goto tmp2_done;
}
case 2: {
if (11 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT632), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT554;
goto tmp2_done;
}
case 3: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT143), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _inBaseType;
goto tmp2_done;
}
case 4: {
if (3 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT140), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _inBaseType;
goto tmp2_done;
}
case 5: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT561), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _inBaseType;
goto tmp2_done;
}
case 6: {
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT562), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT555;
goto tmp2_done;
}
case 7: {
if (7 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT600), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _inBaseType;
goto tmp2_done;
}
case 8: {
if (11 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT633), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT630;
goto tmp2_done;
}
case 9: {
if (9 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT601), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT581;
goto tmp2_done;
}
case 10: {
if (12 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT602), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT599;
goto tmp2_done;
}
case 11: {
tmpMeta[1] = mmc_mk_cons(_inAttrName, mmc_mk_cons(_OMC_LIT297, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT558, tmpMeta[1], _inInfo);
goto goto_1;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outType = tmpMeta[0];
_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_LIT297), 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_LIT294), 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_LIT300), 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_LIT291), 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_LIT512), 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 tmpMeta[1] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_string tmp3_1;
tmp3_1 = _inName;
{
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 5; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (4 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT297), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT588;
goto tmp2_done;
}
case 1: {
if (7 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT294), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT634;
goto tmp2_done;
}
case 2: {
if (6 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT300), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT554;
goto tmp2_done;
}
case 3: {
if (7 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT291), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmpMeta[0] = _OMC_LIT555;
goto tmp2_done;
}
case 4: {
modelica_boolean tmp5;
if (5 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT512), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
tmp5 = omc_Config_synchronousFeaturesAllowed(threadData);
if (1 != tmp5) goto goto_1;
tmpMeta[0] = _OMC_LIT635;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outType = tmpMeta[0];
_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 tmpMeta[3] __attribute__((unused)) = {0};
MMC_SO();
_tailrecursive: OMC_LABEL_UNUSED
{
modelica_metatype tmp3_1;modelica_boolean tmp3_2;
tmp3_1 = _inInstDims;
tmp3_2 = _inSplitArrays;
{
modelica_metatype _dims = NULL;
volatile mmc_switch_type tmp3;
int tmp4;
tmp3 = 0;
for (; tmp3 < 2; tmp3++) {
switch (MMC_SWITCH_CAST(tmp3)) {
case 0: {
if (0 != tmp3_2) goto tmp2_end;
if (listEmpty(tmp3_1)) goto tmp2_end;
tmpMeta[1] = MMC_CAR(tmp3_1);
tmpMeta[2] = MMC_CDR(tmp3_1);
_dims = tmpMeta[1];
tmpMeta[0] = omc_Types_liftArrayListDims(threadData, _inType, _dims);
goto tmp2_done;
}
case 1: {
tmpMeta[0] = _inType;
goto tmp2_done;
}
}
goto tmp2_end;
tmp2_end: ;
}
goto goto_1;
goto_1:;
MMC_THROW_INTERNAL();
goto tmp2_done;
tmp2_done:;
}
}
_outType = tmpMeta[0];
_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[19] __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: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,8) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
_n = tmpMeta[12];
_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_LIT9;
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: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,8) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 6));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[13],10,0) == 0) goto tmp3_end;
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 7));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[14],0,8) == 0) goto tmp3_end;
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[14]), 2));
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 9));
_c = tmp4_8;
_n = tmpMeta[12];
_els = tmpMeta[15];
_info = tmpMeta[16];
_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_LIT636, boxvar_Inst_getEnumAttributeType, _pre);
_ci_state_1 = omc_ClassInf_trans(threadData, _ci_state, _OMC_LIT394);
_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_LIT254 ,&_fq_class);
_eqConstraint = omc_InstUtil_equalityConstraint(threadData, _env_2, _els, _info);
tmpMeta[12] = mmc_mk_box6(8, &DAE_Type_T__ENUMERATION__desc, mmc_mk_none(), _fq_class, _names, _tys1, _tys);
_ty2 = tmpMeta[12];
_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_LIT256);
_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_LIT9;
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_boolean tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_8,2,8) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 2));
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 4));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 5));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 6));
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 7));
tmpMeta[17] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 8));
tmpMeta[18] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_8), 9));
_c = tmp4_8;
_n = tmpMeta[12];
_encapsulatedPrefix = tmpMeta[13];
_partialPrefix = tmpMeta[14];
_r = tmpMeta[15];
_d = tmpMeta[16];
_comment = tmpMeta[17];
_info = tmpMeta[18];
_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_LIT637);
tmp6 = omc_InstUtil_isBuiltInClass(threadData, _n);
if (0 != tmp6) goto goto_2;
{
modelica_metatype tmp9_1;
tmp9_1 = _r;
{
volatile mmc_switch_type tmp9;
int tmp10;
tmp9 = 0;
for (; tmp9 < 2; tmp9++) {
switch (MMC_SWITCH_CAST(tmp9)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp9_1,10,0) == 0) goto tmp8_end;
goto goto_7;
goto tmp8_done;
}
case 1: {
goto tmp8_done;
}
}
goto tmp8_end;
tmp8_end: ;
}
goto goto_7;
goto_7:;
goto goto_2;
goto tmp8_done;
tmp8_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_LIT9:_dae);
omc_ErrorExt_delCheckpoint(threadData, _OMC_LIT637);
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: {
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_LIT531) && (!_impl)) && omc_SCodeUtil_isFunction(threadData, _c));
if((!_b))
{
omc_ErrorExt_delCheckpoint(threadData, _OMC_LIT637);
goto goto_2;
}
else
{
omc_ErrorExt_rollBack(threadData, _OMC_LIT637);
}
tmpMeta[12] = MMC_REFSTRUCTLIT(mmc_nil);
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _store;
tmpMeta[0+4] = _OMC_LIT9;
tmpMeta[0+5] = _inSets;
tmpMeta[0+6] = _ci_state;
tmpMeta[0+7] = tmpMeta[12];
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 tmpMeta[4] __attribute__((unused)) = {0};
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: {
tmpMeta[0] = _inMod;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],0,5) == 0) goto goto_1;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 4));
_submods = tmpMeta[1];
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 tmp7_1;
tmp7_1 = _inType;
{
modelica_metatype _tvars = NULL;
volatile mmc_switch_type tmp7;
int tmp8;
tmp7 = 0;
for (; tmp7 < 1; tmp7++) {
switch (MMC_SWITCH_CAST(tmp7)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp7_1,9,3) == 0) goto tmp6_end;
tmpMeta[1] = MMC_REFSTRUCTLIT(mmc_nil);
_tvars = tmpMeta[1];
{
modelica_metatype _var;
for (tmpMeta[1] = (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inType), 3))); !listEmpty(tmpMeta[1]); tmpMeta[1]=MMC_CDR(tmpMeta[1]))
{
_var = MMC_CAR(tmpMeta[1]);
{
modelica_metatype _submod;
for (tmpMeta[2] = _submods; !listEmpty(tmpMeta[2]); tmpMeta[2]=MMC_CDR(tmpMeta[2]))
{
_submod = MMC_CAR(tmpMeta[2]);
if(omc_Inst_varIsModifiedInMod(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_var), 2))), _submod))
{
tmpMeta[3] = MMC_TAGPTR(mmc_alloc_words(8));
memcpy(MMC_UNTAGPTR(tmpMeta[3]), MMC_UNTAGPTR(_var), 8*sizeof(modelica_metatype));
((modelica_metatype*)MMC_UNTAGPTR(tmpMeta[3]))[6] = mmc_mk_boolean(1);
_var = tmpMeta[3];
break;
}
}
}
tmpMeta[2] = mmc_mk_cons(_var, _tvars);
_tvars = tmpMeta[2];
}
}
_tvars = listReverse(_tvars);
tmpMeta[1] = 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))));
tmpMeta[0] = tmpMeta[1];
goto tmp6_done;
}
}
goto tmp6_end;
tmp6_end: ;
}
goto goto_5;
goto_5:;
MMC_THROW_INTERNAL();
goto tmp6_done;
tmp6_done:;
}
}
_outType = tmpMeta[0];
_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;
modelica_metatype tmpMeta[1] __attribute__((unused)) = {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: {
tmpMeta[0] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],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;
modelica_metatype tmpMeta[1] __attribute__((unused)) = {0};
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: {
if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,4) == 0) goto tmp2_end;
tmpMeta[0] = MMC_TAGPTR(mmc_alloc_words(6));
memcpy(MMC_UNTAGPTR(tmpMeta[0]), MMC_UNTAGPTR(_bind), 6*sizeof(modelica_metatype));
((modelica_metatype*)MMC_UNTAGPTR(tmpMeta[0]))[5] = _OMC_LIT638;
_bind = tmpMeta[0];
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 tmpMeta[4] __attribute__((unused)) = {0};
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: {
tmpMeta[0] = _derMod;
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[0],0,5) == 0) goto goto_1;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 4));
_submods = tmpMeta[1];
goto tmp2_done;
}
case 1: {
omc_Error_addMessage(threadData, _OMC_LIT641, _OMC_LIT643);
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 tmp7_1;
tmp7_1 = _inType;
{
modelica_metatype _tvars = NULL;
volatile mmc_switch_type tmp7;
int tmp8;
tmp7 = 0;
for (; tmp7 < 1; tmp7++) {
switch (MMC_SWITCH_CAST(tmp7)) {
case 0: {
if (mmc__uniontype__metarecord__typedef__equal(tmp7_1,9,3) == 0) goto tmp6_end;
tmpMeta[1] = MMC_REFSTRUCTLIT(mmc_nil);
_tvars = tmpMeta[1];
{
modelica_metatype _var;
for (tmpMeta[1] = (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_inType), 3))); !listEmpty(tmpMeta[1]); tmpMeta[1]=MMC_CDR(tmpMeta[1]))
{
_var = MMC_CAR(tmpMeta[1]);
{
modelica_metatype _submod;
for (tmpMeta[2] = _submods; !listEmpty(tmpMeta[2]); tmpMeta[2]=MMC_CDR(tmpMeta[2]))
{
_submod = MMC_CAR(tmpMeta[2]);
if(omc_Inst_varIsModifiedInDerivedMod(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_var), 2))), _submod))
{
tmpMeta[3] = MMC_TAGPTR(mmc_alloc_words(8));
memcpy(MMC_UNTAGPTR(tmpMeta[3]), MMC_UNTAGPTR(_var), 8*sizeof(modelica_metatype));
((modelica_metatype*)MMC_UNTAGPTR(tmpMeta[3]))[6] = mmc_mk_boolean(1);
_var = tmpMeta[3];
tmpMeta[3] = MMC_TAGPTR(mmc_alloc_words(8));
memcpy(MMC_UNTAGPTR(tmpMeta[3]), MMC_UNTAGPTR(_var), 8*sizeof(modelica_metatype));
((modelica_metatype*)MMC_UNTAGPTR(tmpMeta[3]))[5] = omc_Inst_markBindingFromDerivedRecordMods(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_var), 5))));
_var = tmpMeta[3];
break;
}
}
}
tmpMeta[2] = mmc_mk_cons(_var, _tvars);
_tvars = tmpMeta[2];
}
}
_tvars = listReverse(_tvars);
tmpMeta[1] = 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))));
tmpMeta[0] = tmpMeta[1];
goto tmp6_done;
}
}
goto tmp6_end;
tmp6_end: ;
}
goto goto_5;
goto_5:;
MMC_THROW_INTERNAL();
goto tmp6_done;
tmp6_done:;
}
}
_outType = tmpMeta[0];
_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 tmpMeta[10] __attribute__((unused)) = {0};
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_LIT9;
tmpMeta[0] = MMC_REFSTRUCTLIT(mmc_nil);
_vars = tmpMeta[0];
_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_LIT21))
{
{
{
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_integer tmp5;
tmpMeta[0] = omc_InstHashTable_get(threadData, _cache_path);
if (listEmpty(tmpMeta[0])) goto goto_1;
tmpMeta[1] = MMC_CAR(tmpMeta[0]);
tmpMeta[2] = MMC_CDR(tmpMeta[0]);
if (optionNone(tmpMeta[1])) goto goto_1;
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[1]), 1));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[3],0,2) == 0) goto goto_1;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 2));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[3]), 3));
if (listEmpty(tmpMeta[2])) goto goto_1;
tmpMeta[6] = MMC_CAR(tmpMeta[2]);
tmpMeta[7] = MMC_CDR(tmpMeta[2]);
if (!listEmpty(tmpMeta[7])) goto goto_1;
_inputs = tmpMeta[4];
_outputs = tmpMeta[5];
tmpMeta[0] = _inputs;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 1));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 4));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[5],2,8) == 0) goto goto_1;
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 6));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 7));
tmp5 = mmc_unbox_integer(tmpMeta[7]);
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 8));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 9));
_m = tmpMeta[1];
_pre = tmpMeta[2];
_csets = tmpMeta[3];
_st = tmpMeta[4];
_e = tmpMeta[5];
_dims = tmpMeta[6];
_impl = tmp5;
_scr = tmpMeta[8];
_cs = tmpMeta[9];
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)))
{
tmpMeta[0] = _outputs;
tmpMeta[1] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 1));
tmpMeta[2] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 2));
tmpMeta[3] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 3));
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 4));
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 5));
tmpMeta[6] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 6));
tmpMeta[7] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 7));
tmpMeta[8] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 8));
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[0]), 9));
_env = tmpMeta[1];
_dae = tmpMeta[2];
_sets = tmpMeta[3];
_state = tmpMeta[4];
_vars = tmpMeta[5];
_ty = tmpMeta[6];
_optDerAttr = tmpMeta[7];
_equalityConstraint = tmpMeta[8];
_cached_graph = tmpMeta[9];
_graph = omc_ConnectionGraph_merge(threadData, _graph, _cached_graph);
omc_Inst_showCacheInfo(threadData, _OMC_LIT644, _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:;
}
}
;
}
{
{
volatile mmc_switch_type tmp8;
int tmp9;
tmp8 = 0;
MMC_TRY_INTERNAL(mmc_jumper)
tmp7_top:
threadData->mmc_jumper = &new_mmc_jumper;
for (; tmp8 < 2; tmp8++) {
switch (MMC_SWITCH_CAST(tmp8)) {
case 0: {
tmpMeta[0] = mmc_mk_box9(0, _mod, _prefix, _sets, _state, _cls, _instDims, mmc_mk_boolean(_implicitInst), _instSingleCref, _callingScope);
_inputs = tmpMeta[0];
_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);
tmpMeta[0] = mmc_mk_box9(0, _env, _dae, _sets, _state, _vars, _ty, _optDerAttr, _equalityConstraint, _graph);
_outputs = tmpMeta[0];
omc_Inst_showCacheInfo(threadData, _OMC_LIT645, _cache_path);
tmpMeta[0] = mmc_mk_box3(3, &InstHashTable_CachedInstItem_FUNC__instClassIn__desc, _inputs, _outputs);
omc_InstHashTable_addToInstCache(threadData, _cache_path, mmc_mk_some(tmpMeta[0]), mmc_mk_none());
goto tmp7_done;
}
case 1: {
modelica_boolean tmp10;
tmp10 = omc_Flags_isSet(threadData, _OMC_LIT274);
if (1 != tmp10) goto goto_6;
tmpMeta[0] = stringAppend(_OMC_LIT646,omc_SCodeUtil_elementName(threadData, _cls));
tmpMeta[1] = stringAppend(tmpMeta[0],_OMC_LIT520);
tmpMeta[2] = stringAppend(tmpMeta[1],omc_FGraph_printGraphPathStr(threadData, _env));
omc_Debug_traceln(threadData, tmpMeta[2]);
goto goto_6;
goto tmp7_done;
}
}
goto tmp7_end;
tmp7_end: ;
}
goto goto_6;
tmp7_done:
(void)tmp8;
MMC_RESTORE_INTERNAL(mmc_jumper);
goto tmp7_done2;
goto_6:;
MMC_CATCH_INTERNAL(mmc_jumper);
if (++tmp8 < 2) {
goto tmp7_top;
}
MMC_THROW_INTERNAL();
tmp7_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[17] __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_boolean tmp6;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 5));
_io = tmpMeta[13];
tmp6 = (omc_AbsynUtil_isNotInnerOuter(threadData, _io) || omc_AbsynUtil_isOnlyInner(threadData, _io));
if (1 != tmp6) 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_boolean tmp7;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 5));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 4));
tmpMeta[16] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 6));
_n = tmpMeta[12];
_io = tmpMeta[14];
_encflag = tmpMeta[15];
_r = tmpMeta[16];
tmp7 = (omc_AbsynUtil_isInnerOuter(threadData, _io) || omc_AbsynUtil_isOnlyOuter(threadData, _io));
if (1 != tmp7) goto goto_2;
tmpMeta[12] = omc_FNode_refData(threadData, omc_FGraph_lastScopeRef(threadData, _inEnv));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[12],3,5) == 0) goto goto_2;
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 6));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[13],7,1) == 0) goto goto_2;
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 2));
_n = tmpMeta[14];
_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));
tmpMeta[12] = omc_InnerOuter_lookupInnerVar(threadData, _inCache, _env, _inIH, _inPrefix, _n, _io);
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 10));
if (optionNone(tmpMeta[13])) goto goto_2;
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 1));
_c = tmpMeta[14];
_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_boolean tmp8;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 5));
_n = tmpMeta[12];
_io = tmpMeta[14];
tmp8 = (omc_AbsynUtil_isInnerOuter(threadData, _io) || omc_AbsynUtil_isOnlyOuter(threadData, _io));
if (1 != tmp8) goto goto_2;
_n = omc_FGraph_getInstanceOriginalName(threadData, _inEnv, _n);
tmpMeta[12] = omc_InnerOuter_lookupInnerVar(threadData, _inCache, _inEnv, _inIH, _inPrefix, _n, _io);
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[12]), 10));
if (optionNone(tmpMeta[13])) goto goto_2;
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 1));
_c = tmpMeta[14];
_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_boolean tmp9;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,2,8) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[13]), 5));
tmpMeta[15] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 9));
_n = tmpMeta[12];
_io = tmpMeta[14];
_info = tmpMeta[15];
tmp9 = (omc_AbsynUtil_isInnerOuter(threadData, _io) || omc_AbsynUtil_isOnlyOuter(threadData, _io));
if (1 != tmp9) goto goto_2;
if((!omc_Config_getGraphicsExpMode(threadData)))
{
_s1 = _n;
_s2 = omc_Dump_unparseInnerouterStr(threadData, _io);
tmpMeta[12] = mmc_mk_cons(_s1, mmc_mk_cons(_s2, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT650, tmpMeta[12], _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[12] __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: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_7,2,8) == 0) goto tmp3_end;
tmpMeta[9] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 2));
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 4));
tmpMeta[11] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 6));
_c = tmp4_7;
_n = tmpMeta[9];
_encflag = tmpMeta[10];
_r = tmpMeta[11];
_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_LIT372);
_cache = omc_Inst_instClassIn(threadData, _cache, _env_1, _ih, _store, _mod, _pre, _ci_state, _c_1, _OMC_LIT365, _inst_dims, _impl, _OMC_LIT22, _OMC_LIT4, _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_LIT254 ,&_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[15] __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_boolean tmp6;
modelica_boolean tmp7;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_7,2,8) == 0) goto tmp3_end;
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 2));
tmpMeta[11] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[11],0,0) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 6));
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 9));
_n = tmpMeta[10];
_r = tmpMeta[12];
_info = tmpMeta[13];
_cache = tmp4_1;
_store = tmp4_4;
tmp6 = omc_Flags_getConfigBool(threadData, _OMC_LIT531);
if (1 != tmp6) goto goto_2;
tmp7 = omc_SCodeUtil_isFunctionRestriction(threadData, _r);
if (0 != tmp7) goto goto_2;
_c = omc_SCodeUtil_setClassPartialPrefix(threadData, _OMC_LIT372, _inClass);
if((!omc_Config_getGraphicsExpMode(threadData)))
{
tmpMeta[10] = mmc_mk_cons(_n, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT653, tmpMeta[10], _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_boolean tmp8;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_7,2,8) == 0) goto tmp3_end;
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 2));
tmpMeta[11] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 4));
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 5));
tmpMeta[13] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 6));
tmpMeta[14] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 9));
_c = tmp4_7;
_n = tmpMeta[10];
_encflag = tmpMeta[11];
_partialPrefix = tmpMeta[12];
_r = tmpMeta[13];
_info = tmpMeta[14];
_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_LIT517;
tmpMeta[10] = mmc_mk_cons(_strDepth, mmc_mk_cons(_scopeName, MMC_REFSTRUCTLIT(mmc_nil)));
omc_Error_addSourceMessage(threadData, _OMC_LIT516, tmpMeta[10], _info);
goto goto_2;
}
_isFn = omc_SCodeUtil_isFunctionRestriction(threadData, _r);
_notIsPartial = (!omc_SCodeUtil_partialBool(threadData, _partialPrefix));
_isPartialFn = (_isFn && omc_SCodeUtil_partialBool(threadData, _partialPrefix));
tmp8 = (_notIsPartial || _isPartialFn);
if (1 != tmp8) 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_LIT365, _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_LIT254 ,&_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_LIT11, 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: {
if (0 != tmp4_9) goto tmp3_end;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_7,2,8) == 0) goto tmp3_end;
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 2));
tmpMeta[11] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 5));
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[11],0,0) == 0) goto tmp3_end;
tmpMeta[12] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 9));
_n = tmpMeta[10];
_info = tmpMeta[12];
_cache = tmp4_1;
if((!omc_Config_getGraphicsExpMode(threadData)))
{
tmpMeta[10] = mmc_mk_cons(_n, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addSourceMessage(threadData, _OMC_LIT656, tmpMeta[10], _info);
}
goto goto_2;
goto tmp3_done;
}
case 3: {
modelica_boolean tmp9;
if (mmc__uniontype__metarecord__typedef__equal(tmp4_7,2,8) == 0) goto tmp3_end;
tmpMeta[10] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_7), 2));
_n = tmpMeta[10];
_env = tmp4_2;
tmp9 = omc_Flags_isSet(threadData, _OMC_LIT274);
if (1 != tmp9) goto goto_2;
tmpMeta[10] = stringAppend(_OMC_LIT657,_n);
tmpMeta[11] = stringAppend(tmpMeta[10],_OMC_LIT658);
tmpMeta[12] = stringAppend(tmpMeta[11],omc_FGraph_printGraphPathStr(threadData, _env));
tmpMeta[13] = stringAppend(tmpMeta[12],_OMC_LIT659);
omc_Debug_trace(threadData, tmpMeta[13]);
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_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[7] __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_LIT9;
goto tmp3_done;
}
case 1: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
if (0 != MMC_STRLEN(tmpMeta[4]) || strcmp(MMC_STRINGDATA(_OMC_LIT5), MMC_STRINGDATA(tmpMeta[4])) != 0) goto tmp3_end;
tmpMeta[0+0] = _inCache;
tmpMeta[0+1] = _inEnv;
tmpMeta[0+2] = _inIH;
tmpMeta[0+3] = _OMC_LIT9;
goto tmp3_done;
}
case 2: {
if (mmc__uniontype__metarecord__typedef__equal(tmp4_2,1,1) == 0) goto tmp3_end;
tmpMeta[4] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_2), 2));
_name = tmpMeta[4];
_cls = omc_InstUtil_lookupTopLevelClass(threadData, _name, _inProgram, 1);
tmpMeta[4] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClass(threadData, _inCache, _inEnv, _inIH, omc_UnitAbsynBuilder_emptyInstStore(threadData), _OMC_LIT1, omc_Inst_makeTopComponentPrefix(threadData, _inEnv, _name), _cls, tmpMeta[4], 0, _OMC_LIT3, _OMC_LIT4, _OMC_LIT8 ,&_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);
tmpMeta[5] = mmc_mk_box5(20, &DAE_Element_COMP__desc, _name, _elts, _inSource, _cmt);
tmpMeta[4] = mmc_mk_cons(tmpMeta[5], MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[6] = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta[4]);
_dae = tmpMeta[6];
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _dae;
goto tmp3_done;
}
case 3: {
modelica_boolean tmp6;
tmp6 = omc_Flags_isSet(threadData, _OMC_LIT274);
if (1 != tmp6) goto goto_2;
omc_Debug_trace(threadData, _OMC_LIT660);
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 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_LIT2;
_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[8] __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: {
if (!listEmpty(tmp4_3)) goto tmp3_end;
tmp4 += 2;
tmpMeta[4] = MMC_REFSTRUCTLIT(mmc_nil);
omc_Error_addMessage(threadData, _OMC_LIT263, tmpMeta[4]);
goto goto_2;
goto tmp3_done;
}
case 1: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmp4_3);
tmpMeta[5] = 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_LIT264, _env);
_cdecls = omc_List_map1(threadData, _cdecls, boxvar_SCodeUtil_classSetPartial, _OMC_LIT372);
_source = omc_ElementSource_addElementSourcePartOfOpt(threadData, _OMC_LIT662, omc_FGraph_getScopePath(threadData, _env));
tmpMeta[0+0] = omc_Inst_instClassInProgram(threadData, _cache, _env_1, _ih, _cdecls, _path, _source, &tmpMeta[0+1], &tmpMeta[0+2], &tmpMeta[0+3]);
goto tmp3_done;
}
case 2: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmp4_3);
tmpMeta[5] = 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_LIT264, _env);
tmpMeta[7] = omc_Lookup_lookupClass(threadData, _cache, _env_1, _path, _OMC_LIT267, &tmpMeta[4], &tmpMeta[6]);
_cache = tmpMeta[7];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],2,8) == 0) goto goto_2;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
_cdef = tmpMeta[4];
_n = tmpMeta[5];
_env_2 = tmpMeta[6];
_cdef = omc_SCodeUtil_classSetPartial(threadData, _cdef, _OMC_LIT372);
tmpMeta[4] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClass(threadData, _cache, _env_2, _ih, omc_UnitAbsynBuilder_emptyInstStore(threadData), _OMC_LIT1, omc_Inst_makeTopComponentPrefix(threadData, _env_2, _n), _cdef, tmpMeta[4], 0, _OMC_LIT3, _OMC_LIT4, _OMC_LIT8 ,&_env_2 ,&_ih ,NULL ,&_dae ,NULL ,NULL ,NULL ,NULL ,NULL);
_pathstr = omc_AbsynUtil_pathString(threadData, _path, _OMC_LIT11, 1, 0);
_source = omc_ElementSource_addElementSourcePartOfOpt(threadData, _OMC_LIT662, omc_FGraph_getScopePath(threadData, _env));
_daeElts = omc_DAEUtil_daeElements(threadData, _dae);
_cmt = omc_SCodeUtil_getElementComment(threadData, _cdef);
tmpMeta[5] = mmc_mk_box5(20, &DAE_Element_COMP__desc, _pathstr, _daeElts, _source, _cmt);
tmpMeta[4] = mmc_mk_cons(tmpMeta[5], MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[6] = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta[4]);
_dae = tmpMeta[6];
tmpMeta[0+0] = _cache;
tmpMeta[0+1] = _env_2;
tmpMeta[0+2] = _ih;
tmpMeta[0+3] = _dae;
goto tmp3_done;
}
case 3: {
_path = tmp4_4;
if (!(!omc_Config_getGraphicsExpMode(threadData))) goto tmp3_end;
_cname_str = omc_AbsynUtil_pathString(threadData, _path, _OMC_LIT11, 1, 0);
tmpMeta[4] = mmc_mk_cons(_cname_str, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addMessage(threadData, _OMC_LIT270, tmpMeta[4]);
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_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[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;
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: {
if (!listEmpty(tmp4_3)) goto tmp3_end;
tmp4 += 2;
tmpMeta[4] = MMC_REFSTRUCTLIT(mmc_nil);
omc_Error_addMessage(threadData, _OMC_LIT263, tmpMeta[4]);
goto goto_2;
goto tmp3_done;
}
case 1: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmp4_3);
tmpMeta[5] = 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 ,&_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: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmp4_3);
tmpMeta[5] = MMC_CDR(tmp4_3);
_path = tmp4_4;
_stackOverflow = 0;
tmpMeta[4] = stringAppend(omc_AbsynUtil_pathString(threadData, _path, _OMC_LIT11, 1, 0),(_stackOverflow?_OMC_LIT663:_OMC_LIT5));
_cname_str = tmpMeta[4];
if((!omc_Config_getGraphicsExpMode(threadData)))
{
tmpMeta[4] = mmc_mk_cons(_cname_str, MMC_REFSTRUCTLIT(mmc_nil));
omc_Error_addMessage(threadData, _OMC_LIT270, tmpMeta[4]);
}
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 *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDAElist)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_doSCodeDep);
_outCache = omc_Inst_instantiateClass(threadData, _inCache, _inIH, _inProgram, _inPath, tmp1, 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_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[8] __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: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmp4_3);
tmpMeta[5] = 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_LIT664);
}
_cache = omc_Builtin_initialGraph(threadData, _cache ,&_env);
_env = omc_FGraphBuildEnv_mkProgramGraph(threadData, _cdecls, _OMC_LIT264, _env);
_source = omc_ElementSource_addElementSourcePartOfOpt(threadData, _OMC_LIT662, omc_FGraph_getScopePath(threadData, _env));
if(omc_Flags_isSet(threadData, _OMC_LIT670))
{
tmpMeta[4] = stringAppend(omc_GC_profStatsStr(threadData, omc_GC_getProfStats(threadData), _OMC_LIT665, _OMC_LIT666),_OMC_LIT12);
fputs(MMC_STRINGDATA(tmpMeta[4]),stdout);
}
omc_ExecStat_execStat(threadData, _OMC_LIT671);
_cache = omc_Inst_instClassInProgram(threadData, _cache, _env, _ih, _cdecls, _path, _source ,&_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: {
if (listEmpty(tmp4_3)) goto tmp3_end;
tmpMeta[4] = MMC_CAR(tmp4_3);
tmpMeta[5] = 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_LIT664);
}
_pathstr = omc_AbsynUtil_pathString(threadData, _path, _OMC_LIT11, 1, 0);
_cache = omc_Builtin_initialGraph(threadData, _cache ,&_env);
_env = omc_FGraphBuildEnv_mkProgramGraph(threadData, _cdecls, _OMC_LIT264, _env);
tmpMeta[7] = omc_Lookup_lookupClass(threadData, _cache, _env, _path, _OMC_LIT267, &tmpMeta[4], &tmpMeta[6]);
_cache = tmpMeta[7];
if (mmc__uniontype__metarecord__typedef__equal(tmpMeta[4],2,8) == 0) goto goto_2;
tmpMeta[5] = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta[4]), 2));
_cdef = tmpMeta[4];
_n = tmpMeta[5];
_env = tmpMeta[6];
if(omc_Flags_isSet(threadData, _OMC_LIT670))
{
tmpMeta[4] = stringAppend(omc_GC_profStatsStr(threadData, omc_GC_getProfStats(threadData), _OMC_LIT665, _OMC_LIT666),_OMC_LIT12);
fputs(MMC_STRINGDATA(tmpMeta[4]),stdout);
}
omc_ExecStat_execStat(threadData, _OMC_LIT671);
tmpMeta[4] = MMC_REFSTRUCTLIT(mmc_nil);
_cache = omc_Inst_instClass(threadData, _cache, _env, _ih, omc_UnitAbsynBuilder_emptyInstStore(threadData), _OMC_LIT1, omc_Inst_makeTopComponentPrefix(threadData, _env, _n), _cdef, tmpMeta[4], 0, _OMC_LIT3, _OMC_LIT4, _OMC_LIT8 ,&_env ,&_ih ,NULL ,&_dae ,NULL ,NULL ,NULL ,NULL ,NULL);
_dae = omc_InstUtil_reEvaluateInitialIfEqns(threadData, _cache, _env, _dae, 1);
_source = omc_ElementSource_addElementSourcePartOfOpt(threadData, _OMC_LIT662, omc_FGraph_getScopePath(threadData, _env));
_daeElts = omc_DAEUtil_daeElements(threadData, _dae);
_cmt = omc_SCodeUtil_getElementComment(threadData, _cdef);
tmpMeta[5] = mmc_mk_box5(20, &DAE_Element_COMP__desc, _pathstr, _daeElts, _source, _cmt);
tmpMeta[4] = mmc_mk_cons(tmpMeta[5], MMC_REFSTRUCTLIT(mmc_nil));
tmpMeta[6] = mmc_mk_box2(3, &DAE_DAElist_DAE__desc, tmpMeta[4]);
_dae = tmpMeta[6];
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 *out_outEnv, modelica_metatype *out_outIH, modelica_metatype *out_outDAElist)
{
modelica_integer tmp1;
modelica_metatype _outCache = NULL;
tmp1 = mmc_unbox_integer(_doSCodeDep);
_outCache = omc_Inst_instantiateClass__dispatch(threadData, _inCache, _inIH, _inProgram, _inPath, tmp1, out_outEnv, out_outIH, out_outDAElist);
return _outCache;
}
