#include "omc_simulation_settings.h"
#include "XMLDump.h"
#define _OMC_LIT0_data ""
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT0,0,_OMC_LIT0_data);
#define _OMC_LIT0 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT0)
#define _OMC_LIT1_data "minus"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT1,5,_OMC_LIT1_data);
#define _OMC_LIT1 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT1)
#define _OMC_LIT2_data " ( "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT2,3,_OMC_LIT2_data);
#define _OMC_LIT2 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT2)
#define _OMC_LIT3_data ") = 0"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT3,5,_OMC_LIT3_data);
#define _OMC_LIT3 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT3)
#define _OMC_LIT4_data "equation"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT4,8,_OMC_LIT4_data);
#define _OMC_LIT4 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT4)
#define _OMC_LIT5_data "id"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT5,2,_OMC_LIT5_data);
#define _OMC_LIT5 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT5)
#define _OMC_LIT6_data "MathML"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT6,6,_OMC_LIT6_data);
#define _OMC_LIT6 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT6)
#define _OMC_LIT7_data "math"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT7,4,_OMC_LIT7_data);
#define _OMC_LIT7 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT7)
#define _OMC_LIT8_data "xmlns"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT8,5,_OMC_LIT8_data);
#define _OMC_LIT8 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT8)
#define _OMC_LIT9_data "http://www.w3.org/1998/Math/MathML"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT9,34,_OMC_LIT9_data);
#define _OMC_LIT9 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT9)
#define _OMC_LIT10_data "apply"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT10,5,_OMC_LIT10_data);
#define _OMC_LIT10 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT10)
#define _OMC_LIT11_data "equivalent"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT11,10,_OMC_LIT11_data);
#define _OMC_LIT11 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT11)
static const MMC_DEFREALLIT(_OMC_LIT_STRUCT12,0.0);
#define _OMC_LIT12 MMC_REFREALLIT(_OMC_LIT_STRUCT12)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT13,2,4) {&DAE_Exp_RCONST__desc,_OMC_LIT12}};
#define _OMC_LIT13 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT13)
#define _OMC_LIT14_data " - ( "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT14,5,_OMC_LIT14_data);
#define _OMC_LIT14 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT14)
#define _OMC_LIT15_data " ) = 0"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT15,6,_OMC_LIT15_data);
#define _OMC_LIT15 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT15)
#define _OMC_LIT16_data " - ("
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT16,4,_OMC_LIT16_data);
#define _OMC_LIT16 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT16)
#define _OMC_LIT17_data ") = 0\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT17,6,_OMC_LIT17_data);
#define _OMC_LIT17 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT17)
#define _OMC_LIT18_data "arrayEquation"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT18,13,_OMC_LIT18_data);
#define _OMC_LIT18 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT18)
#define _OMC_LIT19_data "string"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT19,6,_OMC_LIT19_data);
#define _OMC_LIT19 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT19)
#define _OMC_LIT20_data "arrayOfEquations"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT20,16,_OMC_LIT20_data);
#define _OMC_LIT20 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT20)
#define _OMC_LIT21_data "complexequations"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT21,16,_OMC_LIT21_data);
#define _OMC_LIT21 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT21)
#define _OMC_LIT22_data " ) := 0"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT22,7,_OMC_LIT22_data);
#define _OMC_LIT22 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT22)
#define _OMC_LIT23_data "solvedEquation"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT23,14,_OMC_LIT23_data);
#define _OMC_LIT23 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT23)
#define _OMC_LIT24_data ") := 0"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT24,6,_OMC_LIT24_data);
#define _OMC_LIT24 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT24)
#define _OMC_LIT25_data "whenEquation"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT25,12,_OMC_LIT25_data);
#define _OMC_LIT25 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT25)
#define _OMC_LIT26_data "whenEquationCondition"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT26,21,_OMC_LIT26_data);
#define _OMC_LIT26 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT26)
#define _OMC_LIT27_data "\n"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT27,1,_OMC_LIT27_data);
#define _OMC_LIT27 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT27)
#define _OMC_LIT28_data " = 0"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT28,4,_OMC_LIT28_data);
#define _OMC_LIT28 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT28)
#define _OMC_LIT29_data "residualEquation"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT29,16,_OMC_LIT29_data);
#define _OMC_LIT29 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT29)
#define _OMC_LIT30_data "0"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT30,1,_OMC_LIT30_data);
#define _OMC_LIT30 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT30)
#define _OMC_LIT31_data "algorithm"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT31,9,_OMC_LIT31_data);
#define _OMC_LIT31 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT31)
#define _OMC_LIT32_data "lt"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT32,2,_OMC_LIT32_data);
#define _OMC_LIT32 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT32)
#define _OMC_LIT33_data "leq"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT33,3,_OMC_LIT33_data);
#define _OMC_LIT33 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT33)
#define _OMC_LIT34_data "gt"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT34,2,_OMC_LIT34_data);
#define _OMC_LIT34 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT34)
#define _OMC_LIT35_data "geq"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT35,3,_OMC_LIT35_data);
#define _OMC_LIT35 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT35)
#define _OMC_LIT36_data "neq"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT36,3,_OMC_LIT36_data);
#define _OMC_LIT36 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT36)
#define _OMC_LIT37_data "in XMLDump.relopSymbol - Unknown operator"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT37,41,_OMC_LIT37_data);
#define _OMC_LIT37 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT37)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT38,1,5) {&ErrorTypes_MessageType_TRANSLATION__desc,}};
#define _OMC_LIT38 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT38)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT39,1,4) {&ErrorTypes_Severity_ERROR__desc,}};
#define _OMC_LIT39 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT39)
#define _OMC_LIT40_data "Internal error %s"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT40,17,_OMC_LIT40_data);
#define _OMC_LIT40 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT40)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT41,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT40}};
#define _OMC_LIT41 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT41)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT42,5,3) {&ErrorTypes_Message_MESSAGE__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(63)),_OMC_LIT38,_OMC_LIT39,_OMC_LIT41}};
#define _OMC_LIT42 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT42)
#define _OMC_LIT43_data "not"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT43,3,_OMC_LIT43_data);
#define _OMC_LIT43 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT43)
#define _OMC_LIT44_data "in XMLDump.lunaryopSymbol - Unknown operator"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT44,44,_OMC_LIT44_data);
#define _OMC_LIT44 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT44)
#define _OMC_LIT45_data "and"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT45,3,_OMC_LIT45_data);
#define _OMC_LIT45 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT45)
#define _OMC_LIT46_data "or"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT46,2,_OMC_LIT46_data);
#define _OMC_LIT46 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT46)
#define _OMC_LIT47_data "in XMLDump.lbinopSymbol - Unknown operator"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT47,42,_OMC_LIT47_data);
#define _OMC_LIT47 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT47)
#define _OMC_LIT48_data "zeroCrossingElement"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT48,19,_OMC_LIT48_data);
#define _OMC_LIT48 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT48)
#define _OMC_LIT49_data "involvedEquations"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT49,17,_OMC_LIT49_data);
#define _OMC_LIT49 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT49)
#define _OMC_LIT50_data "equationId"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT50,10,_OMC_LIT50_data);
#define _OMC_LIT50 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT50)
#define _OMC_LIT51_data "dimension"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT51,9,_OMC_LIT51_data);
#define _OMC_LIT51 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT51)
#define _OMC_LIT52_data "SamplesElement"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT52,14,_OMC_LIT52_data);
#define _OMC_LIT52 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT52)
#define _OMC_LIT53_data "index"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT53,5,_OMC_LIT53_data);
#define _OMC_LIT53 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT53)
#define _OMC_LIT54_data "value"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT54,5,_OMC_LIT54_data);
#define _OMC_LIT54 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT54)
#define _OMC_LIT55_data "start"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT55,5,_OMC_LIT55_data);
#define _OMC_LIT55 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT55)
#define _OMC_LIT56_data "interval"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT56,8,_OMC_LIT56_data);
#define _OMC_LIT56 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT56)
#define _OMC_LIT57_data " := "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT57,4,_OMC_LIT57_data);
#define _OMC_LIT57 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT57)
#define _OMC_LIT58_data "WhenOperator"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT58,12,_OMC_LIT58_data);
#define _OMC_LIT58 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT58)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT59,1,11) {&DAE_Type_T__UNKNOWN__desc,}};
#define _OMC_LIT59 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT59)
#define _OMC_LIT60_data "reinit"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT60,6,_OMC_LIT60_data);
#define _OMC_LIT60 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT60)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT61,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT60}};
#define _OMC_LIT61 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT61)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT62,1,7) {&DAE_InlineType_NO__INLINE__desc,}};
#define _OMC_LIT62 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT62)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT63,1,3) {&DAE_TailCall_NO__TAIL__desc,}};
#define _OMC_LIT63 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT63)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT64,8,3) {&DAE_CallAttributes_CALL__ATTR__desc,_OMC_LIT59,MMC_IMMEDIATE(MMC_TAGFIXNUM(0 /* false */)),MMC_IMMEDIATE(MMC_TAGFIXNUM(1 /* true */)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0 /* false */)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0 /* false */)),_OMC_LIT62,_OMC_LIT63}};
#define _OMC_LIT64 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT64)
#define _OMC_LIT65_data "assert"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT65,6,_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)
#define _OMC_LIT67_data "terminate"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT67,9,_OMC_LIT67_data);
#define _OMC_LIT67 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT67)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT68,2,4) {&Absyn_Path_IDENT__desc,_OMC_LIT67}};
#define _OMC_LIT68 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT68)
#define _OMC_LIT69_data "true"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT69,4,_OMC_LIT69_data);
#define _OMC_LIT69 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT69)
#define _OMC_LIT70_data "false"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT70,5,_OMC_LIT70_data);
#define _OMC_LIT70 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT70)
#define _OMC_LIT71_data "classesNames"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT71,12,_OMC_LIT71_data);
#define _OMC_LIT71 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT71)
#define _OMC_LIT72_data "attributesValues"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT72,16,_OMC_LIT72_data);
#define _OMC_LIT72 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT72)
#define _OMC_LIT73_data "variable"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT73,8,_OMC_LIT73_data);
#define _OMC_LIT73 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT73)
#define _OMC_LIT74_data "in XMLDump.dumpVarsAdds2 - Unknown var: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT74,40,_OMC_LIT74_data);
#define _OMC_LIT74 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT74)
#define _OMC_LIT75_data "variablesList"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT75,13,_OMC_LIT75_data);
#define _OMC_LIT75 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT75)
#define _OMC_LIT76_data "additionalInfo"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT76,14,_OMC_LIT76_data);
#define _OMC_LIT76 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT76)
#define _OMC_LIT77_data "hashTb"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT77,6,_OMC_LIT77_data);
#define _OMC_LIT77 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT77)
#define _OMC_LIT78_data "in XMLDump.dumpVarsAdditionalInfo - Unknown info"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT78,48,_OMC_LIT78_data);
#define _OMC_LIT78 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT78)
#define _OMC_LIT79_data "\" "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT79,2,_OMC_LIT79_data);
#define _OMC_LIT79 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT79)
#define _OMC_LIT80_data "differentiatedIndex"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT80,19,_OMC_LIT80_data);
#define _OMC_LIT80 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT80)
#define _OMC_LIT81_data "=\""
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT81,2,_OMC_LIT81_data);
#define _OMC_LIT81 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT81)
#define _OMC_LIT82_data "derivativeName"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT82,14,_OMC_LIT82_data);
#define _OMC_LIT82 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT82)
#define _OMC_LIT83_data "\n<"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT83,2,_OMC_LIT83_data);
#define _OMC_LIT83 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT83)
#define _OMC_LIT84_data " "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT84,1,_OMC_LIT84_data);
#define _OMC_LIT84 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT84)
#define _OMC_LIT85_data "name"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT85,4,_OMC_LIT85_data);
#define _OMC_LIT85 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT85)
#define _OMC_LIT86_data "variability"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT86,11,_OMC_LIT86_data);
#define _OMC_LIT86 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT86)
#define _OMC_LIT87_data "direction"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT87,9,_OMC_LIT87_data);
#define _OMC_LIT87 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT87)
#define _OMC_LIT88_data "type"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT88,4,_OMC_LIT88_data);
#define _OMC_LIT88 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT88)
#define _OMC_LIT89_data "fixed"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT89,5,_OMC_LIT89_data);
#define _OMC_LIT89 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT89)
#define _OMC_LIT90_data "flow"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT90,4,_OMC_LIT90_data);
#define _OMC_LIT90 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT90)
#define _OMC_LIT91_data "stream"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT91,6,_OMC_LIT91_data);
#define _OMC_LIT91 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT91)
#define _OMC_LIT92_data "\">"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT92,2,_OMC_LIT92_data);
#define _OMC_LIT92 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT92)
#define _OMC_LIT93_data "comment"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT93,7,_OMC_LIT93_data);
#define _OMC_LIT93 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT93)
#define _OMC_LIT94_data "Integer"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT94,7,_OMC_LIT94_data);
#define _OMC_LIT94 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT94)
#define _OMC_LIT95_data "Real"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT95,4,_OMC_LIT95_data);
#define _OMC_LIT95 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT95)
#define _OMC_LIT96_data "Boolean"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT96,7,_OMC_LIT96_data);
#define _OMC_LIT96 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT96)
#define _OMC_LIT97_data "String"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT97,6,_OMC_LIT97_data);
#define _OMC_LIT97 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT97)
#define _OMC_LIT98_data ", "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT98,2,_OMC_LIT98_data);
#define _OMC_LIT98 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT98)
#define _OMC_LIT99_data "enumeration"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT99,11,_OMC_LIT99_data);
#define _OMC_LIT99 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT99)
#define _OMC_LIT100_data "("
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT100,1,_OMC_LIT100_data);
#define _OMC_LIT100 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT100)
#define _OMC_LIT101_data ")"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT101,1,_OMC_LIT101_data);
#define _OMC_LIT101 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT101)
#define _OMC_LIT102_data "ExternalObject"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT102,14,_OMC_LIT102_data);
#define _OMC_LIT102 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT102)
#define _OMC_LIT103_data "Dim Enum"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT103,8,_OMC_LIT103_data);
#define _OMC_LIT103 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT103)
#define _OMC_LIT104_data ":"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT104,1,_OMC_LIT104_data);
#define _OMC_LIT104 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT104)
#define _OMC_LIT105_data "/>"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT105,2,_OMC_LIT105_data);
#define _OMC_LIT105 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT105)
#define _OMC_LIT106_data "\" />"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT106,4,_OMC_LIT106_data);
#define _OMC_LIT106 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT106)
#define _OMC_LIT107_data ">"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT107,1,_OMC_LIT107_data);
#define _OMC_LIT107 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT107)
#define _OMC_LIT108_data "ci"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT108,2,_OMC_LIT108_data);
#define _OMC_LIT108 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT108)
#define _OMC_LIT109_data "cn"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT109,2,_OMC_LIT109_data);
#define _OMC_LIT109 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT109)
#define _OMC_LIT110_data "Stream"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT110,6,_OMC_LIT110_data);
#define _OMC_LIT110 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT110)
#define _OMC_LIT111_data "NonStream"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT111,9,_OMC_LIT111_data);
#define _OMC_LIT111 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT111)
#define _OMC_LIT112_data "NonStreamConnector"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT112,18,_OMC_LIT112_data);
#define _OMC_LIT112 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT112)
#define _OMC_LIT113_data "\n</"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT113,3,_OMC_LIT113_data);
#define _OMC_LIT113 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT113)
#define _OMC_LIT114_data "$"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT114,1,_OMC_LIT114_data);
#define _OMC_LIT114 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT114)
#define _OMC_LIT115_data "_dollar_"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT115,8,_OMC_LIT115_data);
#define _OMC_LIT115 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT115)
#define _OMC_LIT116_data "originalAdjacencyMatrix"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT116,23,_OMC_LIT116_data);
#define _OMC_LIT116 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT116)
#define _OMC_LIT117_data "solvingInfo"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT117,11,_OMC_LIT117_data);
#define _OMC_LIT117 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT117)
#define _OMC_LIT118_data "Never"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT118,5,_OMC_LIT118_data);
#define _OMC_LIT118 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT118)
#define _OMC_LIT119_data "Avoid"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT119,5,_OMC_LIT119_data);
#define _OMC_LIT119 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT119)
#define _OMC_LIT120_data "Default"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT120,7,_OMC_LIT120_data);
#define _OMC_LIT120 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT120)
#define _OMC_LIT121_data "Prefer"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT121,6,_OMC_LIT121_data);
#define _OMC_LIT121 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT121)
#define _OMC_LIT122_data "Always"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT122,6,_OMC_LIT122_data);
#define _OMC_LIT122 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT122)
#define _OMC_LIT123_data "\n<solvedIn variableId=\""
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT123,23,_OMC_LIT123_data);
#define _OMC_LIT123 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT123)
#define _OMC_LIT124_data "\" equationId=\""
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT124,14,_OMC_LIT124_data);
#define _OMC_LIT124 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT124)
#define _OMC_LIT125_data "matchingAlgorithm"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT125,17,_OMC_LIT125_data);
#define _OMC_LIT125 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT125)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT126,2,0) {MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0))}};
#define _OMC_LIT126 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT126)
#define _OMC_LIT127_data "continuous"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT127,10,_OMC_LIT127_data);
#define _OMC_LIT127 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT127)
#define _OMC_LIT128_data "continuousState"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT128,15,_OMC_LIT128_data);
#define _OMC_LIT128 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT128)
#define _OMC_LIT129_data "continuousDummyDer"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT129,18,_OMC_LIT129_data);
#define _OMC_LIT129 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT129)
#define _OMC_LIT130_data "continuousDummyState"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT130,20,_OMC_LIT130_data);
#define _OMC_LIT130 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT130)
#define _OMC_LIT131_data "discrete"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT131,8,_OMC_LIT131_data);
#define _OMC_LIT131 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT131)
#define _OMC_LIT132_data "parameter"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT132,9,_OMC_LIT132_data);
#define _OMC_LIT132 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT132)
#define _OMC_LIT133_data "constant"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT133,8,_OMC_LIT133_data);
#define _OMC_LIT133 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT133)
#define _OMC_LIT134_data "externalObject"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT134,14,_OMC_LIT134_data);
#define _OMC_LIT134 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT134)
#define _OMC_LIT135_data "."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT135,1,_OMC_LIT135_data);
#define _OMC_LIT135 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT135)
#define _OMC_LIT136_data "in XMLDump.dumpKind - Unknown kind"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT136,34,_OMC_LIT136_data);
#define _OMC_LIT136 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT136)
#define _OMC_LIT137_data "matrixrow"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT137,9,_OMC_LIT137_data);
#define _OMC_LIT137 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT137)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT138,1,4) {&BackendDAE_IndexType_NORMAL__desc,}};
#define _OMC_LIT138 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT138)
#define _OMC_LIT139_data "matrix"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT139,6,_OMC_LIT139_data);
#define _OMC_LIT139 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT139)
#define _OMC_LIT140_data "function"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT140,8,_OMC_LIT140_data);
#define _OMC_LIT140 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT140)
#define _OMC_LIT141_data "ModelicaImplementation"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT141,22,_OMC_LIT141_data);
#define _OMC_LIT141 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT141)
#define _OMC_LIT142_data "functions"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT142,9,_OMC_LIT142_data);
#define _OMC_LIT142 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT142)
#define _OMC_LIT143_data "Flow"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT143,4,_OMC_LIT143_data);
#define _OMC_LIT143 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT143)
#define _OMC_LIT144_data "NonFlow"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT144,7,_OMC_LIT144_data);
#define _OMC_LIT144 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT144)
#define _OMC_LIT145_data "NonConnector"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT145,12,_OMC_LIT145_data);
#define _OMC_LIT145 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT145)
#define _OMC_LIT146_data "class "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT146,6,_OMC_LIT146_data);
#define _OMC_LIT146 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT146)
#define _OMC_LIT147_data "\n  extends ExternalObject"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT147,25,_OMC_LIT147_data);
#define _OMC_LIT147 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT147)
#define _OMC_LIT148_data "end"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT148,3,_OMC_LIT148_data);
#define _OMC_LIT148 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT148)
#define _OMC_LIT149_data "externalClassesList"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT149,19,_OMC_LIT149_data);
#define _OMC_LIT149 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT149)
#define _OMC_LIT150_data "externalClass"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT150,13,_OMC_LIT150_data);
#define _OMC_LIT150 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT150)
#define _OMC_LIT151_data "integer"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT151,7,_OMC_LIT151_data);
#define _OMC_LIT151 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT151)
#define _OMC_LIT152_data "real"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT152,4,_OMC_LIT152_data);
#define _OMC_LIT152 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT152)
#define _OMC_LIT153_data "piecewise"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT153,9,_OMC_LIT153_data);
#define _OMC_LIT153 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT153)
#define _OMC_LIT154_data "piece"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT154,5,_OMC_LIT154_data);
#define _OMC_LIT154 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT154)
#define _OMC_LIT155_data "otherwise"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT155,9,_OMC_LIT155_data);
#define _OMC_LIT155 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT155)
#define _OMC_LIT156_data "diff"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT156,4,_OMC_LIT156_data);
#define _OMC_LIT156 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT156)
#define _OMC_LIT157_data "arccos"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT157,6,_OMC_LIT157_data);
#define _OMC_LIT157 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT157)
#define _OMC_LIT158_data "arcsin"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT158,6,_OMC_LIT158_data);
#define _OMC_LIT158 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT158)
#define _OMC_LIT159_data "arctan"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT159,6,_OMC_LIT159_data);
#define _OMC_LIT159 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT159)
#define _OMC_LIT160_data "mo"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT160,2,_OMC_LIT160_data);
#define _OMC_LIT160 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT160)
#define _OMC_LIT161_data "atan2"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT161,5,_OMC_LIT161_data);
#define _OMC_LIT161 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT161)
#define _OMC_LIT162_data "atan2 is not a MathML element it could be possible to use arg in future"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT162,71,_OMC_LIT162_data);
#define _OMC_LIT162 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT162)
#define _OMC_LIT163_data "ln"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT163,2,_OMC_LIT163_data);
#define _OMC_LIT163 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT163)
#define _OMC_LIT164_data "log"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT164,3,_OMC_LIT164_data);
#define _OMC_LIT164 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT164)
#define _OMC_LIT165_data "transpose"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT165,9,_OMC_LIT165_data);
#define _OMC_LIT165 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT165)
#define _OMC_LIT166_data "vector"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT166,6,_OMC_LIT166_data);
#define _OMC_LIT166 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT166)
#define _OMC_LIT167_data "\n</matrixrow>\n<matrixrow>"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT167,25,_OMC_LIT167_data);
#define _OMC_LIT167 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT167)
#define _OMC_LIT168_data "{"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT168,1,_OMC_LIT168_data);
#define _OMC_LIT168 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT168)
#define _OMC_LIT169_data "Interval range specification is not supported by MathML standard"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT169,64,_OMC_LIT169_data);
#define _OMC_LIT169 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT169)
#define _OMC_LIT170_data "}"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT170,1,_OMC_LIT170_data);
#define _OMC_LIT170 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT170)
#define _OMC_LIT171_data "CAST as "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT171,8,_OMC_LIT171_data);
#define _OMC_LIT171 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT171)
#define _OMC_LIT172_data "CAST operator is not supported by MathML standard."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT172,50,_OMC_LIT172_data);
#define _OMC_LIT172 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT172)
#define _OMC_LIT173_data "selector"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT173,8,_OMC_LIT173_data);
#define _OMC_LIT173 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT173)
#define _OMC_LIT174_data "UNKNOWN EXPRESSION: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT174,20,_OMC_LIT174_data);
#define _OMC_LIT174 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT174)
#define _OMC_LIT175_data "der"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT175,3,_OMC_LIT175_data);
#define _OMC_LIT175 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT175)
#define _OMC_LIT176_data "acos"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT176,4,_OMC_LIT176_data);
#define _OMC_LIT176 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT176)
#define _OMC_LIT177_data "asin"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT177,4,_OMC_LIT177_data);
#define _OMC_LIT177 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT177)
#define _OMC_LIT178_data "atan"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT178,4,_OMC_LIT178_data);
#define _OMC_LIT178 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT178)
#define _OMC_LIT179_data "log10"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT179,5,_OMC_LIT179_data);
#define _OMC_LIT179 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT179)
#define _OMC_LIT180_data " = "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT180,3,_OMC_LIT180_data);
#define _OMC_LIT180 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT180)
#define _OMC_LIT181_data "in XMLDump.dumpEquation - Unknown equation"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT181,42,_OMC_LIT181_data);
#define _OMC_LIT181 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT181)
#define _OMC_LIT182_data "input"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT182,5,_OMC_LIT182_data);
#define _OMC_LIT182 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT182)
#define _OMC_LIT183_data "output"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT183,6,_OMC_LIT183_data);
#define _OMC_LIT183 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT183)
#define _OMC_LIT184_data "none"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT184,4,_OMC_LIT184_data);
#define _OMC_LIT184 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT184)
#define _OMC_LIT185_data "in XMLDump.dumpDirectionStr - Unknown var direction"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT185,51,_OMC_LIT185_data);
#define _OMC_LIT185 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT185)
#define _OMC_LIT186_data "quantity"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT186,8,_OMC_LIT186_data);
#define _OMC_LIT186 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT186)
#define _OMC_LIT187_data "unit"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT187,4,_OMC_LIT187_data);
#define _OMC_LIT187 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT187)
#define _OMC_LIT188_data "displayUnit"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT188,11,_OMC_LIT188_data);
#define _OMC_LIT188 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT188)
#define _OMC_LIT189_data "stateSelect"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT189,11,_OMC_LIT189_data);
#define _OMC_LIT189 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT189)
#define _OMC_LIT190_data "minValue"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT190,8,_OMC_LIT190_data);
#define _OMC_LIT190 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT190)
#define _OMC_LIT191_data "maxValue"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT191,8,_OMC_LIT191_data);
#define _OMC_LIT191 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT191)
#define _OMC_LIT192_data "nominal"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT192,7,_OMC_LIT192_data);
#define _OMC_LIT192 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT192)
#define _OMC_LIT193_data "initialValue"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT193,12,_OMC_LIT193_data);
#define _OMC_LIT193 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT193)
#define _OMC_LIT194_data "unknown VariableAttributes"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT194,26,_OMC_LIT194_data);
#define _OMC_LIT194 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT194)
#define _OMC_LIT195_data "failtrace"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT195,9,_OMC_LIT195_data);
#define _OMC_LIT195 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT195)
#define _OMC_LIT196_data "Sets whether to print a failtrace or not."
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT196,41,_OMC_LIT196_data);
#define _OMC_LIT196 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT196)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT197,2,3) {&Gettext_TranslatableContent_gettext__desc,_OMC_LIT196}};
#define _OMC_LIT197 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT197)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT198,5,3) {&Flags_DebugFlag_DEBUG__FLAG__desc,MMC_IMMEDIATE(MMC_TAGFIXNUM(1)),_OMC_LIT195,MMC_IMMEDIATE(MMC_TAGFIXNUM(0 /* false */)),_OMC_LIT197}};
#define _OMC_LIT198 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT198)
#define _OMC_LIT199_data "XMLDump.getOrderedEqs2 failed!"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT199,30,_OMC_LIT199_data);
#define _OMC_LIT199 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT199)
#define _OMC_LIT200_data "SamplesList"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT200,11,_OMC_LIT200_data);
#define _OMC_LIT200 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT200)
#define _OMC_LIT201_data "zeroCrossingList"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT201,16,_OMC_LIT201_data);
#define _OMC_LIT201 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT201)
#define _OMC_LIT202_data "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT202,38,_OMC_LIT202_data);
#define _OMC_LIT202 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT202)
#define _OMC_LIT203_data "dae xmlns:p1=\"http://www.w3.org/1998/Math/MathML\"\n                                                xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n                                                xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n                                                xsi:noNamespaceSchemaLocation=\"http://home.dei.polimi.it/donida/Projects/AutoEdit/Images/DAE.xsd\""
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT203,388,_OMC_LIT203_data);
#define _OMC_LIT203 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT203)
#define _OMC_LIT204_data "variables"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT204,9,_OMC_LIT204_data);
#define _OMC_LIT204 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT204)
#define _OMC_LIT205_data "orderedVariables"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT205,16,_OMC_LIT205_data);
#define _OMC_LIT205 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT205)
#define _OMC_LIT206_data "knownVariables"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT206,14,_OMC_LIT206_data);
#define _OMC_LIT206 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT206)
#define _OMC_LIT207_data "externalVariables"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT207,17,_OMC_LIT207_data);
#define _OMC_LIT207 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT207)
#define _OMC_LIT208_data "aliasVariables"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT208,14,_OMC_LIT208_data);
#define _OMC_LIT208 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT208)
#define _OMC_LIT209_data "externalClasses"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT209,15,_OMC_LIT209_data);
#define _OMC_LIT209 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT209)
#define _OMC_LIT210_data "equations"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT210,9,_OMC_LIT210_data);
#define _OMC_LIT210 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT210)
#define _OMC_LIT211_data "simpleEquations"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT211,15,_OMC_LIT211_data);
#define _OMC_LIT211 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT211)
#define _OMC_LIT212_data "initialEquations"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT212,16,_OMC_LIT212_data);
#define _OMC_LIT212 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT212)
#define _OMC_LIT213_data "dae"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT213,3,_OMC_LIT213_data);
#define _OMC_LIT213 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT213)
#define _OMC_LIT214_data "XMLDump.dumpBackendDAE failed"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT214,29,_OMC_LIT214_data);
#define _OMC_LIT214 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT214)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT215,2,1) {_OMC_LIT214,MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT215 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT215)
#define _OMC_LIT216_data ".xml"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT216,4,_OMC_LIT216_data);
#define _OMC_LIT216 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT216)
#define _OMC_LIT217_data "element"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT217,7,_OMC_LIT217_data);
#define _OMC_LIT217 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT217)
#define _OMC_LIT218_data "in XMLDump.dumpCrefIdxLstArr - failed for var number:"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT218,53,_OMC_LIT218_data);
#define _OMC_LIT218 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT218)
#define _OMC_LIT219_data "bltBlock"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT219,8,_OMC_LIT219_data);
#define _OMC_LIT219 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT219)
#define _OMC_LIT220_data "bltRepresentation"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT220,17,_OMC_LIT220_data);
#define _OMC_LIT220 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT220)
#define _OMC_LIT221_data "<!--"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT221,4,_OMC_LIT221_data);
#define _OMC_LIT221 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT221)
#define _OMC_LIT222_data "-->"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT222,3,_OMC_LIT222_data);
#define _OMC_LIT222 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT222)
#define _OMC_LIT223_data "bindExpression"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT223,14,_OMC_LIT223_data);
#define _OMC_LIT223 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT223)
#define _OMC_LIT224_data "involvedEquation"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT224,16,_OMC_LIT224_data);
#define _OMC_LIT224 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT224)
#define _OMC_LIT225_data "constraint"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT225,10,_OMC_LIT225_data);
#define _OMC_LIT225 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT225)
#define _OMC_LIT226_data "label"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT226,5,_OMC_LIT226_data);
#define _OMC_LIT226 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT226)
#define _OMC_LIT227_data "constraint_ref_"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT227,15,_OMC_LIT227_data);
#define _OMC_LIT227 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT227)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT228,8,3) {&SourceInfo_SOURCEINFO__desc,_OMC_LIT0,MMC_IMMEDIATE(MMC_TAGFIXNUM(0 /* false */)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),MMC_IMMEDIATE(MMC_TAGFIXNUM(0)),_OMC_LIT12}};
#define _OMC_LIT228 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT228)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT229,1,4) {&DAE_ComponentPrefix_NOCOMPPRE__desc,}};
#define _OMC_LIT229 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT229)
static const MMC_DEFSTRUCTLIT(_OMC_LIT_STRUCT230,8,3) {&DAE_ElementSource_SOURCE__desc,_OMC_LIT228,MMC_REFSTRUCTLIT(mmc_nil),_OMC_LIT229,MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil),MMC_REFSTRUCTLIT(mmc_nil)}};
#define _OMC_LIT230 MMC_REFSTRUCTLIT(_OMC_LIT_STRUCT230)
#define _OMC_LIT231_data "constraints"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT231,11,_OMC_LIT231_data);
#define _OMC_LIT231 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT231)
#define _OMC_LIT232_data "plus"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT232,4,_OMC_LIT232_data);
#define _OMC_LIT232 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT232)
#define _OMC_LIT233_data "times"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT233,5,_OMC_LIT233_data);
#define _OMC_LIT233 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT233)
#define _OMC_LIT234_data "divide"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT234,6,_OMC_LIT234_data);
#define _OMC_LIT234 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT234)
#define _OMC_LIT235_data "power"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT235,5,_OMC_LIT235_data);
#define _OMC_LIT235 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT235)
#define _OMC_LIT236_data "scalarproduct"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT236,13,_OMC_LIT236_data);
#define _OMC_LIT236 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT236)
#define _OMC_LIT237_data "vectorproduct"
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT237,13,_OMC_LIT237_data);
#define _OMC_LIT237 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT237)
#define _OMC_LIT238_data "in XMLDump.binopSymbol2 - Unknown operator: "
static const MMC_DEFSTRINGLIT(_OMC_LIT_STRUCT238,44,_OMC_LIT238_data);
#define _OMC_LIT238 MMC_REFSTRINGLIT(_OMC_LIT_STRUCT238)
#include "util/modelica.h"

#include "XMLDump_includes.h"


/* default, do not make protected functions static */
#if !defined(PROTECTED_FUNCTION_STATIC)
#define PROTECTED_FUNCTION_STATIC
#endif
PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_unparseCommentOptionNoAnnotation(threadData_t *threadData, modelica_metatype _inAbsynCommentOption);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_unparseCommentOptionNoAnnotation,2,0) {(void*) boxptr_XMLDump_unparseCommentOptionNoAnnotation,0}};
#define boxvar_XMLDump_unparseCommentOptionNoAnnotation MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_unparseCommentOptionNoAnnotation)
PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_unaryopSymbol(threadData_t *threadData, modelica_metatype _inOperator);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_unaryopSymbol,2,0) {(void*) boxptr_XMLDump_unaryopSymbol,0}};
#define boxvar_XMLDump_unaryopSymbol MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_unaryopSymbol)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpResidual(threadData_t *threadData, modelica_metatype _inEquation, modelica_string _inIndexNumber, modelica_boolean _addMathMLCode);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpResidual(threadData_t *threadData, modelica_metatype _inEquation, modelica_metatype _inIndexNumber, modelica_metatype _addMathMLCode);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpResidual,2,0) {(void*) boxptr_XMLDump_dumpResidual,0}};
#define boxvar_XMLDump_dumpResidual MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpResidual)
PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_relopSymbol(threadData_t *threadData, modelica_metatype _inOperator);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_relopSymbol,2,0) {(void*) boxptr_XMLDump_relopSymbol,0}};
#define boxvar_XMLDump_relopSymbol MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_relopSymbol)
PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_lunaryopSymbol(threadData_t *threadData, modelica_metatype _inOperator);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_lunaryopSymbol,2,0) {(void*) boxptr_XMLDump_lunaryopSymbol,0}};
#define boxvar_XMLDump_lunaryopSymbol MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_lunaryopSymbol)
PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_lbinopSymbol(threadData_t *threadData, modelica_metatype _inOperator);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_lbinopSymbol,2,0) {(void*) boxptr_XMLDump_lbinopSymbol,0}};
#define boxvar_XMLDump_lbinopSymbol MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_lbinopSymbol)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpZcLst(threadData_t *threadData, modelica_metatype _inZeroCrossingLst, modelica_boolean _addMathMLCode);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpZcLst(threadData_t *threadData, modelica_metatype _inZeroCrossingLst, modelica_metatype _addMathMLCode);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpZcLst,2,0) {(void*) boxptr_XMLDump_dumpZcLst,0}};
#define boxvar_XMLDump_dumpZcLst MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpZcLst)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpZeroCrossing(threadData_t *threadData, modelica_metatype _zeroCross, modelica_string _inContent, modelica_boolean _addMathMLCode);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpZeroCrossing(threadData_t *threadData, modelica_metatype _zeroCross, modelica_metatype _inContent, modelica_metatype _addMathMLCode);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpZeroCrossing,2,0) {(void*) boxptr_XMLDump_dumpZeroCrossing,0}};
#define boxvar_XMLDump_dumpZeroCrossing MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpZeroCrossing)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpSampleLst(threadData_t *threadData, modelica_metatype _inSamples, modelica_boolean _addMathMLCode);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpSampleLst(threadData_t *threadData, modelica_metatype _inSamples, modelica_metatype _addMathMLCode);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpSampleLst,2,0) {(void*) boxptr_XMLDump_dumpSampleLst,0}};
#define boxvar_XMLDump_dumpSampleLst MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpSampleLst)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpTimeEvents(threadData_t *threadData, modelica_metatype _inTimeEvents, modelica_string _inContent, modelica_boolean _addMathMLCode);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpTimeEvents(threadData_t *threadData, modelica_metatype _inTimeEvents, modelica_metatype _inContent, modelica_metatype _addMathMLCode);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpTimeEvents,2,0) {(void*) boxptr_XMLDump_dumpTimeEvents,0}};
#define boxvar_XMLDump_dumpTimeEvents MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpTimeEvents)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpWhenOperatorLst(threadData_t *threadData, modelica_metatype _inWhenOperators, modelica_boolean _addMathMLCode);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpWhenOperatorLst(threadData_t *threadData, modelica_metatype _inWhenOperators, modelica_metatype _addMathMLCode);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpWhenOperatorLst,2,0) {(void*) boxptr_XMLDump_dumpWhenOperatorLst,0}};
#define boxvar_XMLDump_dumpWhenOperatorLst MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpWhenOperatorLst)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpWhenOperators(threadData_t *threadData, modelica_metatype _inWhenOperators, modelica_string _inContent, modelica_boolean _addMathMLCode);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpWhenOperators(threadData_t *threadData, modelica_metatype _inWhenOperators, modelica_metatype _inContent, modelica_metatype _addMathMLCode);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpWhenOperators,2,0) {(void*) boxptr_XMLDump_dumpWhenOperators,0}};
#define boxvar_XMLDump_dumpWhenOperators MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpWhenOperators)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpVarsAdds2(threadData_t *threadData, modelica_metatype _inVarLst, modelica_metatype _crefIdxLstArr, modelica_integer _inInteger, modelica_boolean _addMMLCode);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpVarsAdds2(threadData_t *threadData, modelica_metatype _inVarLst, modelica_metatype _crefIdxLstArr, modelica_metatype _inInteger, modelica_metatype _addMMLCode);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpVarsAdds2,2,0) {(void*) boxptr_XMLDump_dumpVarsAdds2,0}};
#define boxvar_XMLDump_dumpVarsAdds2 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpVarsAdds2)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpVars2(threadData_t *threadData, modelica_metatype _inVarLst, modelica_integer _inInteger, modelica_boolean _addMathMLCode);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpVars2(threadData_t *threadData, modelica_metatype _inVarLst, modelica_metatype _inInteger, modelica_metatype _addMathMLCode);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpVars2,2,0) {(void*) boxptr_XMLDump_dumpVars2,0}};
#define boxvar_XMLDump_dumpVars2 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpVars2)
PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_getDerName(threadData_t *threadData, modelica_metatype _kind);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_getDerName,2,0) {(void*) boxptr_XMLDump_getDerName,0}};
#define boxvar_XMLDump_getDerName MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_getDerName)
PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_getIndex(threadData_t *threadData, modelica_metatype _kind);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_getIndex,2,0) {(void*) boxptr_XMLDump_getIndex,0}};
#define boxvar_XMLDump_getIndex MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_getIndex)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpVars(threadData_t *threadData, modelica_metatype _vars, modelica_metatype _crefIdxLstArr, modelica_string _Content, modelica_boolean _addMathMLCode);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpVars(threadData_t *threadData, modelica_metatype _vars, modelica_metatype _crefIdxLstArr, modelica_metatype _Content, modelica_metatype _addMathMLCode);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpVars,2,0) {(void*) boxptr_XMLDump_dumpVars,0}};
#define boxvar_XMLDump_dumpVars MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpVars)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpVarsAdditionalInfo(threadData_t *threadData, modelica_metatype _crefIdxLstArr, modelica_integer _i);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpVarsAdditionalInfo(threadData_t *threadData, modelica_metatype _crefIdxLstArr, modelica_metatype _i);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpVarsAdditionalInfo,2,0) {(void*) boxptr_XMLDump_dumpVarsAdditionalInfo,0}};
#define boxvar_XMLDump_dumpVarsAdditionalInfo MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpVarsAdditionalInfo)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_printIndexAndDerName(threadData_t *threadData, modelica_string _indx, modelica_string _derName);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_printIndexAndDerName,2,0) {(void*) boxptr_XMLDump_printIndexAndDerName,0}};
#define boxvar_XMLDump_printIndexAndDerName MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_printIndexAndDerName)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpVariable(threadData_t *threadData, modelica_string _varno, modelica_string _cr, modelica_string _kind, modelica_string _dir, modelica_string _var_type, modelica_string _indx, modelica_string _derName, modelica_string _varFixed, modelica_string _flowPrefix, modelica_string _streamPrefix, modelica_string _comment);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpVariable,2,0) {(void*) boxptr_XMLDump_dumpVariable,0}};
#define boxvar_XMLDump_dumpVariable MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpVariable)
PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_dumpTypeStr(threadData_t *threadData, modelica_metatype _inType);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpTypeStr,2,0) {(void*) boxptr_XMLDump_dumpTypeStr,0}};
#define boxvar_XMLDump_dumpTypeStr MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpTypeStr)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpDimension(threadData_t *threadData, modelica_metatype _inDimension);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpDimension,2,0) {(void*) boxptr_XMLDump_dumpDimension,0}};
#define boxvar_XMLDump_dumpDimension MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpDimension)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpStrVoidTag(threadData_t *threadData, modelica_string _inElementName);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrVoidTag,2,0) {(void*) boxptr_XMLDump_dumpStrVoidTag,0}};
#define boxvar_XMLDump_dumpStrVoidTag MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrVoidTag)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpStrTagContent(threadData_t *threadData, modelica_string _inElementName, modelica_string _inContent);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrTagContent,2,0) {(void*) boxptr_XMLDump_dumpStrTagContent,0}};
#define boxvar_XMLDump_dumpStrTagContent MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrTagContent)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpStrTagAttrNoChild(threadData_t *threadData, modelica_string _inContent, modelica_string _Attribute, modelica_string _AttributeContent);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrTagAttrNoChild,2,0) {(void*) boxptr_XMLDump_dumpStrTagAttrNoChild,0}};
#define boxvar_XMLDump_dumpStrTagAttrNoChild MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrTagAttrNoChild)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpStrOpenTagAttr(threadData_t *threadData, modelica_string _inContent, modelica_string _Attribute, modelica_string _AttributeContent);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrOpenTagAttr,2,0) {(void*) boxptr_XMLDump_dumpStrOpenTagAttr,0}};
#define boxvar_XMLDump_dumpStrOpenTagAttr MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrOpenTagAttr)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpStrOpenTag(threadData_t *threadData, modelica_string _inContent);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrOpenTag,2,0) {(void*) boxptr_XMLDump_dumpStrOpenTag,0}};
#define boxvar_XMLDump_dumpStrOpenTag MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrOpenTag)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpStrMathMLVariable(threadData_t *threadData, modelica_string _inVariable);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrMathMLVariable,2,0) {(void*) boxptr_XMLDump_dumpStrMathMLVariable,0}};
#define boxvar_XMLDump_dumpStrMathMLVariable MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrMathMLVariable)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpStrMathMLNumberAttr(threadData_t *threadData, modelica_string _inNumber, modelica_string _inAttribute, modelica_string _inAttributeContent);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrMathMLNumberAttr,2,0) {(void*) boxptr_XMLDump_dumpStrMathMLNumberAttr,0}};
#define boxvar_XMLDump_dumpStrMathMLNumberAttr MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrMathMLNumberAttr)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpStrMathMLNumber(threadData_t *threadData, modelica_string _inNumber);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrMathMLNumber,2,0) {(void*) boxptr_XMLDump_dumpStrMathMLNumber,0}};
#define boxvar_XMLDump_dumpStrMathMLNumber MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrMathMLNumber)
PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_dumpStreamStr(threadData_t *threadData, modelica_metatype _inVarStream);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpStreamStr,2,0) {(void*) boxptr_XMLDump_dumpStreamStr,0}};
#define boxvar_XMLDump_dumpStreamStr MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpStreamStr)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpStrCloseTag(threadData_t *threadData, modelica_string _inContent);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrCloseTag,2,0) {(void*) boxptr_XMLDump_dumpStrCloseTag,0}};
#define boxvar_XMLDump_dumpStrCloseTag MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpStrCloseTag)
PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_transformModelicaIdentifierToXMLElementTag(threadData_t *threadData, modelica_string _modelicaIdentifier);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_transformModelicaIdentifierToXMLElementTag,2,0) {(void*) boxptr_XMLDump_transformModelicaIdentifierToXMLElementTag,0}};
#define boxvar_XMLDump_transformModelicaIdentifierToXMLElementTag MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_transformModelicaIdentifierToXMLElementTag)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpSolvingInfo(threadData_t *threadData, modelica_boolean _addOriginalAdjacencyMatrix, modelica_boolean _addSolvingInfo, modelica_metatype _inBackendDAE);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpSolvingInfo(threadData_t *threadData, modelica_metatype _addOriginalAdjacencyMatrix, modelica_metatype _addSolvingInfo, modelica_metatype _inBackendDAE);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpSolvingInfo,2,0) {(void*) boxptr_XMLDump_dumpSolvingInfo,0}};
#define boxvar_XMLDump_dumpSolvingInfo MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpSolvingInfo)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpRow(threadData_t *threadData, modelica_metatype _es_1);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpRow,2,0) {(void*) boxptr_XMLDump_dumpRow,0}};
#define boxvar_XMLDump_dumpRow MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpRow)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpOptionDAEStateSelect(threadData_t *threadData, modelica_metatype _ss, modelica_string _Content);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpOptionDAEStateSelect,2,0) {(void*) boxptr_XMLDump_dumpOptionDAEStateSelect,0}};
#define boxvar_XMLDump_dumpOptionDAEStateSelect MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpOptionDAEStateSelect)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpOptInteger(threadData_t *threadData, modelica_metatype _inOption, modelica_string _Content, modelica_boolean _addMathMLCode);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpOptInteger(threadData_t *threadData, modelica_metatype _inOption, modelica_metatype _Content, modelica_metatype _addMathMLCode);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpOptInteger,2,0) {(void*) boxptr_XMLDump_dumpOptInteger,0}};
#define boxvar_XMLDump_dumpOptInteger MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpOptInteger)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpOptExp(threadData_t *threadData, modelica_metatype _inExpExpOption, modelica_string _Content, modelica_boolean _addMathMLCode);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpOptExp(threadData_t *threadData, modelica_metatype _inExpExpOption, modelica_metatype _Content, modelica_metatype _addMathMLCode);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpOptExp,2,0) {(void*) boxptr_XMLDump_dumpOptExp,0}};
#define boxvar_XMLDump_dumpOptExp MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpOptExp)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_XMLDump_dumpMatching2(threadData_t *threadData, modelica_integer _eqn, modelica_metatype _inTpl);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_XMLDump_dumpMatching2(threadData_t *threadData, modelica_metatype _eqn, modelica_metatype _inTpl);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpMatching2,2,0) {(void*) boxptr_XMLDump_dumpMatching2,0}};
#define boxvar_XMLDump_dumpMatching2 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpMatching2)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpMatching1(threadData_t *threadData, modelica_metatype _v, modelica_integer _voffset, modelica_integer _eoffset);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpMatching1(threadData_t *threadData, modelica_metatype _v, modelica_metatype _voffset, modelica_metatype _eoffset);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpMatching1,2,0) {(void*) boxptr_XMLDump_dumpMatching1,0}};
#define boxvar_XMLDump_dumpMatching1 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpMatching1)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_XMLDump_dumpMatchingWork(threadData_t *threadData, modelica_metatype _syst, modelica_metatype _shared, modelica_metatype _inOffset);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpMatchingWork,2,0) {(void*) boxptr_XMLDump_dumpMatchingWork,0}};
#define boxvar_XMLDump_dumpMatchingWork MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpMatchingWork)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpMatching(threadData_t *threadData, modelica_metatype _dae);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpMatching,2,0) {(void*) boxptr_XMLDump_dumpMatching,0}};
#define boxvar_XMLDump_dumpMatching MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpMatching)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpLstIntAttr(threadData_t *threadData, modelica_metatype _lst, modelica_string _inContent, modelica_string _inElementContent);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpLstIntAttr,2,0) {(void*) boxptr_XMLDump_dumpLstIntAttr,0}};
#define boxvar_XMLDump_dumpLstIntAttr MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpLstIntAttr)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpLstInt(threadData_t *threadData, modelica_metatype _inLstStr, modelica_string _inElementName);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpLstInt,2,0) {(void*) boxptr_XMLDump_dumpLstInt,0}};
#define boxvar_XMLDump_dumpLstInt MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpLstInt)
PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_printExpStr(threadData_t *threadData, modelica_metatype _e);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_printExpStr,2,0) {(void*) boxptr_XMLDump_printExpStr,0}};
#define boxvar_XMLDump_printExpStr MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_printExpStr)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpListSeparator(threadData_t *threadData, modelica_metatype _inTypeALst, modelica_fnptr _inFuncTypeTypeATo, modelica_string _inString);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpListSeparator,2,0) {(void*) boxptr_XMLDump_dumpListSeparator,0}};
#define boxvar_XMLDump_dumpListSeparator MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpListSeparator)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpList(threadData_t *threadData, modelica_metatype _inTypeALst, modelica_fnptr _inFuncTypeTypeATo);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpList,2,0) {(void*) boxptr_XMLDump_dumpList,0}};
#define boxvar_XMLDump_dumpList MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpList)
PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_dumpKind(threadData_t *threadData, modelica_metatype _inVarKind);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpKind,2,0) {(void*) boxptr_XMLDump_dumpKind,0}};
#define boxvar_XMLDump_dumpKind MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpKind)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpMatrixIntegerRow(threadData_t *threadData, modelica_integer _x, modelica_integer _offset);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpMatrixIntegerRow(threadData_t *threadData, modelica_metatype _x, modelica_metatype _offset);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpMatrixIntegerRow,2,0) {(void*) boxptr_XMLDump_dumpMatrixIntegerRow,0}};
#define boxvar_XMLDump_dumpMatrixIntegerRow MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpMatrixIntegerRow)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_XMLDump_dumpAdjacencyMatrix2(threadData_t *threadData, modelica_metatype _row, modelica_metatype _inTpl);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpAdjacencyMatrix2,2,0) {(void*) boxptr_XMLDump_dumpAdjacencyMatrix2,0}};
#define boxvar_XMLDump_dumpAdjacencyMatrix2 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpAdjacencyMatrix2)
PROTECTED_FUNCTION_STATIC modelica_integer omc_XMLDump_dumpAdjacencyMatrixWork(threadData_t *threadData, modelica_metatype _syst, modelica_metatype _shared, modelica_integer _inOffset);
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_XMLDump_dumpAdjacencyMatrixWork(threadData_t *threadData, modelica_metatype _syst, modelica_metatype _shared, modelica_metatype _inOffset);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpAdjacencyMatrixWork,2,0) {(void*) boxptr_XMLDump_dumpAdjacencyMatrixWork,0}};
#define boxvar_XMLDump_dumpAdjacencyMatrixWork MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpAdjacencyMatrixWork)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpAdjacencyMatrix(threadData_t *threadData, modelica_metatype _dae);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpAdjacencyMatrix,2,0) {(void*) boxptr_XMLDump_dumpAdjacencyMatrix,0}};
#define boxvar_XMLDump_dumpAdjacencyMatrix MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpAdjacencyMatrix)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpFunctions3(threadData_t *threadData, modelica_metatype _fun);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpFunctions3,2,0) {(void*) boxptr_XMLDump_dumpFunctions3,0}};
#define boxvar_XMLDump_dumpFunctions3 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpFunctions3)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpFunctions2(threadData_t *threadData, modelica_metatype _funcelems);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpFunctions2,2,0) {(void*) boxptr_XMLDump_dumpFunctions2,0}};
#define boxvar_XMLDump_dumpFunctions2 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpFunctions2)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpFunctions(threadData_t *threadData, modelica_metatype _funcelems);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpFunctions,2,0) {(void*) boxptr_XMLDump_dumpFunctions,0}};
#define boxvar_XMLDump_dumpFunctions MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpFunctions)
PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_dumpFlowStr(threadData_t *threadData, modelica_metatype _inVarFlow);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpFlowStr,2,0) {(void*) boxptr_XMLDump_dumpFlowStr,0}};
#define boxvar_XMLDump_dumpFlowStr MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpFlowStr)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpExtObjCls2(threadData_t *threadData, modelica_metatype _cls, modelica_string _Content);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpExtObjCls2,2,0) {(void*) boxptr_XMLDump_dumpExtObjCls2,0}};
#define boxvar_XMLDump_dumpExtObjCls2 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpExtObjCls2)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpExtObjCls(threadData_t *threadData, modelica_metatype _cls, modelica_string _Content);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpExtObjCls,2,0) {(void*) boxptr_XMLDump_dumpExtObjCls,0}};
#define boxvar_XMLDump_dumpExtObjCls MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpExtObjCls)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpExp2(threadData_t *threadData, modelica_metatype _inExp);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpExp2,2,0) {(void*) boxptr_XMLDump_dumpExp2,0}};
#define boxvar_XMLDump_dumpExp2 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpExp2)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpExp(threadData_t *threadData, modelica_metatype _e, modelica_boolean _addMathMLCode);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpExp(threadData_t *threadData, modelica_metatype _e, modelica_metatype _addMathMLCode);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpExp,2,0) {(void*) boxptr_XMLDump_dumpExp,0}};
#define boxvar_XMLDump_dumpExp MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpExp)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpEquation(threadData_t *threadData, modelica_metatype _inEquation, modelica_string _inIndexNumber, modelica_boolean _addMathMLCode);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpEquation(threadData_t *threadData, modelica_metatype _inEquation, modelica_metatype _inIndexNumber, modelica_metatype _addMathMLCode);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpEquation,2,0) {(void*) boxptr_XMLDump_dumpEquation,0}};
#define boxvar_XMLDump_dumpEquation MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpEquation)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpEqns2(threadData_t *threadData, modelica_metatype _inEquationLst, modelica_metatype _inVarLst, modelica_integer _inInteger, modelica_boolean _addMathMLCode, modelica_boolean _dumpResiduals, modelica_boolean _dumpSolved);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpEqns2(threadData_t *threadData, modelica_metatype _inEquationLst, modelica_metatype _inVarLst, modelica_metatype _inInteger, modelica_metatype _addMathMLCode, modelica_metatype _dumpResiduals, modelica_metatype _dumpSolved);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpEqns2,2,0) {(void*) boxptr_XMLDump_dumpEqns2,0}};
#define boxvar_XMLDump_dumpEqns2 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpEqns2)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpEqns(threadData_t *threadData, modelica_metatype _eqns, modelica_string _inContent, modelica_boolean _addMathMLCode, modelica_boolean _dumpResiduals, modelica_boolean _dumpSolved);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpEqns(threadData_t *threadData, modelica_metatype _eqns, modelica_metatype _inContent, modelica_metatype _addMathMLCode, modelica_metatype _dumpResiduals, modelica_metatype _dumpSolved);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpEqns,2,0) {(void*) boxptr_XMLDump_dumpEqns,0}};
#define boxvar_XMLDump_dumpEqns MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpEqns)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpSolvedEqns(threadData_t *threadData, modelica_metatype _eqns, modelica_integer _inCount, modelica_string _inContent, modelica_boolean _addMathMLCode, modelica_boolean _dumpResiduals, modelica_boolean _dumpSolved);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpSolvedEqns(threadData_t *threadData, modelica_metatype _eqns, modelica_metatype _inCount, modelica_metatype _inContent, modelica_metatype _addMathMLCode, modelica_metatype _dumpResiduals, modelica_metatype _dumpSolved);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpSolvedEqns,2,0) {(void*) boxptr_XMLDump_dumpSolvedEqns,0}};
#define boxvar_XMLDump_dumpSolvedEqns MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpSolvedEqns)
PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_dumpDirectionStr(threadData_t *threadData, modelica_metatype _inVarDirection);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpDirectionStr,2,0) {(void*) boxptr_XMLDump_dumpDirectionStr,0}};
#define boxvar_XMLDump_dumpDirectionStr MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpDirectionStr)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpDAEVariableAttributes(threadData_t *threadData, modelica_metatype _dae_var_attr, modelica_string _Content, modelica_boolean _addMathMLCode);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpDAEVariableAttributes(threadData_t *threadData, modelica_metatype _dae_var_attr, modelica_metatype _Content, modelica_metatype _addMathMLCode);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpDAEVariableAttributes,2,0) {(void*) boxptr_XMLDump_dumpDAEVariableAttributes,0}};
#define boxvar_XMLDump_dumpDAEVariableAttributes MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpDAEVariableAttributes)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_XMLDump_getOrderedEqs2(threadData_t *threadData, modelica_metatype _inComps, modelica_metatype _eqns, modelica_metatype _vars, modelica_metatype _inAccum);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_getOrderedEqs2,2,0) {(void*) boxptr_XMLDump_getOrderedEqs2,0}};
#define boxvar_XMLDump_getOrderedEqs2 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_getOrderedEqs2)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_XMLDump_getOrderedEqsandVars(threadData_t *threadData, modelica_metatype _syst, modelica_metatype _inEqnsVars);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_getOrderedEqsandVars,2,0) {(void*) boxptr_XMLDump_getOrderedEqsandVars,0}};
#define boxvar_XMLDump_getOrderedEqsandVars MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_getOrderedEqsandVars)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_XMLDump_getEqsList(threadData_t *threadData, modelica_metatype _syst, modelica_metatype _inEqns);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_getEqsList,2,0) {(void*) boxptr_XMLDump_getEqsList,0}};
#define boxvar_XMLDump_getEqsList MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_getEqsList)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_XMLDump_getOrderedVars(threadData_t *threadData, modelica_metatype _syst, modelica_metatype _inVars);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_getOrderedVars,2,0) {(void*) boxptr_XMLDump_getOrderedVars,0}};
#define boxvar_XMLDump_getOrderedVars MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_getOrderedVars)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpEventInfo(threadData_t *threadData, modelica_metatype _inEventInfo, modelica_boolean _addMML);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpEventInfo(threadData_t *threadData, modelica_metatype _inEventInfo, modelica_metatype _addMML);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpEventInfo,2,0) {(void*) boxptr_XMLDump_dumpEventInfo,0}};
#define boxvar_XMLDump_dumpEventInfo MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpEventInfo)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpDAEInstDims2(threadData_t *threadData, modelica_metatype _arry_Dim);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpDAEInstDims2,2,0) {(void*) boxptr_XMLDump_dumpDAEInstDims2,0}};
#define boxvar_XMLDump_dumpDAEInstDims2 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpDAEInstDims2)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpDAEInstDims(threadData_t *threadData, modelica_metatype _arry_Dim, modelica_string _Content);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpDAEInstDims,2,0) {(void*) boxptr_XMLDump_dumpDAEInstDims,0}};
#define boxvar_XMLDump_dumpDAEInstDims MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpDAEInstDims)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpCrefIdxLst2(threadData_t *threadData, modelica_metatype _crefIdxLst);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpCrefIdxLst2,2,0) {(void*) boxptr_XMLDump_dumpCrefIdxLst2,0}};
#define boxvar_XMLDump_dumpCrefIdxLst2 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpCrefIdxLst2)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpCrefIdxLst(threadData_t *threadData, modelica_metatype _crefIdxLst, modelica_string _Content);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpCrefIdxLst,2,0) {(void*) boxptr_XMLDump_dumpCrefIdxLst,0}};
#define boxvar_XMLDump_dumpCrefIdxLst MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpCrefIdxLst)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpCrefIdxLstArr(threadData_t *threadData, modelica_metatype _crefIdxLstArr, modelica_string _Content, modelica_integer _inInteger);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpCrefIdxLstArr(threadData_t *threadData, modelica_metatype _crefIdxLstArr, modelica_metatype _Content, modelica_metatype _inInteger);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpCrefIdxLstArr,2,0) {(void*) boxptr_XMLDump_dumpCrefIdxLstArr,0}};
#define boxvar_XMLDump_dumpCrefIdxLstArr MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpCrefIdxLstArr)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpComponents2(threadData_t *threadData, modelica_metatype _inIntegerLstLst, modelica_integer _i, modelica_integer _offset);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpComponents2(threadData_t *threadData, modelica_metatype _inIntegerLstLst, modelica_metatype _i, modelica_metatype _offset);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpComponents2,2,0) {(void*) boxptr_XMLDump_dumpComponents2,0}};
#define boxvar_XMLDump_dumpComponents2 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpComponents2)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpComponents1(threadData_t *threadData, modelica_metatype _l, modelica_integer _voffset, modelica_integer _eoffset);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpComponents1(threadData_t *threadData, modelica_metatype _l, modelica_metatype _voffset, modelica_metatype _eoffset);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpComponents1,2,0) {(void*) boxptr_XMLDump_dumpComponents1,0}};
#define boxvar_XMLDump_dumpComponents1 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpComponents1)
PROTECTED_FUNCTION_STATIC modelica_metatype omc_XMLDump_dumpComponentsWork(threadData_t *threadData, modelica_metatype _syst, modelica_metatype _shared, modelica_metatype _inOffset);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpComponentsWork,2,0) {(void*) boxptr_XMLDump_dumpComponentsWork,0}};
#define boxvar_XMLDump_dumpComponentsWork MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpComponentsWork)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpComponents(threadData_t *threadData, modelica_metatype _dae);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpComponents,2,0) {(void*) boxptr_XMLDump_dumpComponents,0}};
#define boxvar_XMLDump_dumpComponents MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpComponents)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpComment(threadData_t *threadData, modelica_string _inComment);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpComment,2,0) {(void*) boxptr_XMLDump_dumpComment,0}};
#define boxvar_XMLDump_dumpComment MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpComment)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpBindExpression(threadData_t *threadData, modelica_metatype _inOptExpExp, modelica_boolean _addMathMLCode);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpBindExpression(threadData_t *threadData, modelica_metatype _inOptExpExp, modelica_metatype _addMathMLCode);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpBindExpression,2,0) {(void*) boxptr_XMLDump_dumpBindExpression,0}};
#define boxvar_XMLDump_dumpBindExpression MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpBindExpression)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpBltInvolvedEquations1(threadData_t *threadData, modelica_metatype _inList, modelica_integer _offset);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpBltInvolvedEquations1(threadData_t *threadData, modelica_metatype _inList, modelica_metatype _offset);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpBltInvolvedEquations1,2,0) {(void*) boxptr_XMLDump_dumpBltInvolvedEquations1,0}};
#define boxvar_XMLDump_dumpBltInvolvedEquations1 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpBltInvolvedEquations1)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpBltInvolvedEquations(threadData_t *threadData, modelica_metatype _inComp, modelica_integer _offset);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpBltInvolvedEquations(threadData_t *threadData, modelica_metatype _inComp, modelica_metatype _offset);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpBltInvolvedEquations,2,0) {(void*) boxptr_XMLDump_dumpBltInvolvedEquations,0}};
#define boxvar_XMLDump_dumpBltInvolvedEquations MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpBltInvolvedEquations)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpConstraints2(threadData_t *threadData, modelica_metatype _iConstrs, modelica_integer _inConsNo);
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpConstraints2(threadData_t *threadData, modelica_metatype _iConstrs, modelica_metatype _inConsNo);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpConstraints2,2,0) {(void*) boxptr_XMLDump_dumpConstraints2,0}};
#define boxvar_XMLDump_dumpConstraints2 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpConstraints2)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpConstraints(threadData_t *threadData, modelica_metatype _constrs);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpConstraints,2,0) {(void*) boxptr_XMLDump_dumpConstraints,0}};
#define boxvar_XMLDump_dumpConstraints MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpConstraints)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpAbsynPathLst2(threadData_t *threadData, modelica_metatype _absynPathLst);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpAbsynPathLst2,2,0) {(void*) boxptr_XMLDump_dumpAbsynPathLst2,0}};
#define boxvar_XMLDump_dumpAbsynPathLst2 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpAbsynPathLst2)
PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpAbsynPathLst(threadData_t *threadData, modelica_metatype _absynPathLst, modelica_string _Content);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_dumpAbsynPathLst,2,0) {(void*) boxptr_XMLDump_dumpAbsynPathLst,0}};
#define boxvar_XMLDump_dumpAbsynPathLst MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_dumpAbsynPathLst)
PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_binopSymbol2(threadData_t *threadData, modelica_metatype _inOperator);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_binopSymbol2,2,0) {(void*) boxptr_XMLDump_binopSymbol2,0}};
#define boxvar_XMLDump_binopSymbol2 MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_binopSymbol2)
PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_binopSymbol(threadData_t *threadData, modelica_metatype _inOperator);
static const MMC_DEFSTRUCTLIT(boxvar_lit_XMLDump_binopSymbol,2,0) {(void*) boxptr_XMLDump_binopSymbol,0}};
#define boxvar_XMLDump_binopSymbol MMC_REFSTRUCTLIT(boxvar_lit_XMLDump_binopSymbol)

PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_unparseCommentOptionNoAnnotation(threadData_t *threadData, modelica_metatype _inAbsynCommentOption)
{
  modelica_string _outString = NULL;
  modelica_string tmp1 = 0;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outString has no default value.
  { /* matchcontinue expression */
    volatile modelica_metatype tmp4_1;
    tmp4_1 = _inAbsynCommentOption;
    {
      modelica_string _cmt = NULL;
      volatile mmc_switch_type tmp4;
      int tmp5;
      // _cmt has no default value.
      tmp4 = 0;
      MMC_TRY_INTERNAL(mmc_jumper)
      tmp3_top:
      threadData->mmc_jumper = &new_mmc_jumper;
      for (; tmp4 < 2; tmp4++) {
        switch (MMC_SWITCH_CAST(tmp4)) {
        case 0: {
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          modelica_metatype tmpMeta8;
          if (optionNone(tmp4_1)) goto tmp3_end;
          tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 1));
          tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 3));
          if (optionNone(tmpMeta7)) goto tmp3_end;
          tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 1));
          _cmt = tmpMeta8;
          /* Pattern matching succeeded */
          tmp1 = _cmt;
          goto tmp3_done;
        }
        case 1: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT0;
          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:;
    }
  }
  _outString = tmp1;
  _return: OMC_LABEL_UNUSED
  return _outString;
}

PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_unaryopSymbol(threadData_t *threadData, modelica_metatype _inOperator)
{
  modelica_string _outString = NULL;
  modelica_string tmp1 = 0;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outString has no default value.
  { /* match expression */
    modelica_metatype tmp4_1;
    tmp4_1 = _inOperator;
    {
      volatile mmc_switch_type tmp4;
      int tmp5;
      tmp4 = 0;
      for (; tmp4 < 2; tmp4++) {
        switch (MMC_SWITCH_CAST(tmp4)) {
        case 0: {
          if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,5,1) == 0) goto tmp3_end;
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT1;
          goto tmp3_done;
        }
        case 1: {
          if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,6,1) == 0) goto tmp3_end;
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT1;
          goto tmp3_done;
        }
        }
        goto tmp3_end;
        tmp3_end: ;
      }
      goto goto_2;
      goto_2:;
      MMC_THROW_INTERNAL();
      goto tmp3_done;
      tmp3_done:;
    }
  }
  _outString = tmp1;
  _return: OMC_LABEL_UNUSED
  return _outString;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpResidual(threadData_t *threadData, modelica_metatype _inEquation, modelica_string _inIndexNumber, modelica_boolean _addMathMLCode)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;modelica_string tmp3_2;modelica_boolean tmp3_3;
    tmp3_1 = _inEquation;
    tmp3_2 = _inIndexNumber;
    tmp3_3 = _addMathMLCode;
    {
      modelica_string _s = NULL;
      modelica_string _s1 = NULL;
      modelica_string _s2 = NULL;
      modelica_string _res = NULL;
      modelica_string _is = NULL;
      modelica_string _indexS = NULL;
      modelica_metatype _e1 = NULL;
      modelica_metatype _e2 = NULL;
      modelica_metatype _e = NULL;
      modelica_metatype _cr = NULL;
      modelica_metatype _stmts = NULL;
      modelica_metatype _source = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _s has no default value.
      // _s1 has no default value.
      // _s2 has no default value.
      // _res has no default value.
      // _is has no default value.
      // _indexS has no default value.
      // _e1 has no default value.
      // _e2 has no default value.
      // _e has no default value.
      // _cr has no default value.
      // _stmts has no default value.
      // _source has no default value.
      tmp3 = 0;
      for (; tmp3 < 13; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          if (1 /* true */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,0,4) == 0) goto tmp2_end;
          tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _e1 = tmpMeta5;
          _e2 = tmpMeta6;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e1);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          tmpMeta7 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT2, mmc_mk_cons(_s2, mmc_mk_cons(_OMC_LIT3, MMC_REFSTRUCTLIT(mmc_nil)))));
          _res = stringAppendList(tmpMeta7);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT4, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT7, _OMC_LIT8, _OMC_LIT9);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT11);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT1);

          omc_XMLDump_dumpExp2(threadData, _e1);

          omc_XMLDump_dumpExp2(threadData, _e2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpExp2(threadData, _OMC_LIT13);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT7);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT4);
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta8;
          modelica_metatype tmpMeta9;
          modelica_metatype tmpMeta10;
          if (0 /* false */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,0,4) == 0) goto tmp2_end;
          tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _e1 = tmpMeta8;
          _e2 = tmpMeta9;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e1);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          tmpMeta10 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT14, mmc_mk_cons(_s2, mmc_mk_cons(_OMC_LIT15, MMC_REFSTRUCTLIT(mmc_nil)))));
          _res = stringAppendList(tmpMeta10);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT4, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT4);
          goto tmp2_done;
        }
        case 2: {
          modelica_metatype tmpMeta11;
          modelica_metatype tmpMeta12;
          modelica_metatype tmpMeta13;
          if (1 /* true */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,6) == 0) goto tmp2_end;
          tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          
          _e1 = tmpMeta11;
          _e2 = tmpMeta12;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e1);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          tmpMeta13 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT16, mmc_mk_cons(_s2, mmc_mk_cons(_OMC_LIT17, MMC_REFSTRUCTLIT(mmc_nil)))));
          _s = stringAppendList(tmpMeta13);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT18, _OMC_LIT19, _s);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT7, _OMC_LIT8, _OMC_LIT9);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT11);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT1);

          omc_XMLDump_dumpExp2(threadData, _e1);

          omc_XMLDump_dumpExp2(threadData, _e2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpExp2(threadData, _OMC_LIT13);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT7);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT18);
          goto tmp2_done;
        }
        case 3: {
          modelica_metatype tmpMeta14;
          modelica_metatype tmpMeta15;
          modelica_metatype tmpMeta16;
          if (0 /* false */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,6) == 0) goto tmp2_end;
          tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          
          _e1 = tmpMeta14;
          _e2 = tmpMeta15;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e1);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          tmpMeta16 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT14, mmc_mk_cons(_s2, mmc_mk_cons(_OMC_LIT15, MMC_REFSTRUCTLIT(mmc_nil)))));
          _res = stringAppendList(tmpMeta16);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT20, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT20);
          goto tmp2_done;
        }
        case 4: {
          modelica_metatype tmpMeta17;
          modelica_metatype tmpMeta18;
          modelica_metatype tmpMeta19;
          if (1 /* true */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,6,5) == 0) goto tmp2_end;
          tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          
          _e1 = tmpMeta17;
          _e2 = tmpMeta18;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e1);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          tmpMeta19 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT16, mmc_mk_cons(_s2, mmc_mk_cons(_OMC_LIT17, MMC_REFSTRUCTLIT(mmc_nil)))));
          _s = stringAppendList(tmpMeta19);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT21, _OMC_LIT19, _s);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT7, _OMC_LIT8, _OMC_LIT9);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT11);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT1);

          omc_XMLDump_dumpExp2(threadData, _e1);

          omc_XMLDump_dumpExp2(threadData, _e2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpExp2(threadData, _OMC_LIT13);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT7);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT21);
          goto tmp2_done;
        }
        case 5: {
          modelica_metatype tmpMeta20;
          modelica_metatype tmpMeta21;
          modelica_metatype tmpMeta22;
          if (0 /* false */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,6,5) == 0) goto tmp2_end;
          tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          
          _e1 = tmpMeta20;
          _e2 = tmpMeta21;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e1);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          tmpMeta22 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT14, mmc_mk_cons(_s2, mmc_mk_cons(_OMC_LIT15, MMC_REFSTRUCTLIT(mmc_nil)))));
          _res = stringAppendList(tmpMeta22);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT21, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT21);
          goto tmp2_done;
        }
        case 6: {
          modelica_metatype tmpMeta23;
          modelica_metatype tmpMeta24;
          modelica_metatype tmpMeta25;
          if (1 /* true */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,2,4) == 0) goto tmp2_end;
          tmpMeta23 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta24 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _cr = tmpMeta23;
          _e2 = tmpMeta24;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_ComponentReference_printComponentRefStr(threadData, _cr);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          tmpMeta25 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT14, mmc_mk_cons(_s2, mmc_mk_cons(_OMC_LIT22, MMC_REFSTRUCTLIT(mmc_nil)))));
          _res = stringAppendList(tmpMeta25);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT23, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT7, _OMC_LIT8, _OMC_LIT9);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT11);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT1);

          omc_Print_printBuf(threadData, _s1);

          omc_XMLDump_dumpExp2(threadData, _e2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpExp2(threadData, _OMC_LIT13);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT7);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT23);
          goto tmp2_done;
        }
        case 7: {
          modelica_metatype tmpMeta26;
          modelica_metatype tmpMeta27;
          modelica_metatype tmpMeta28;
          if (0 /* false */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,2,4) == 0) goto tmp2_end;
          tmpMeta26 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta27 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _cr = tmpMeta26;
          _e2 = tmpMeta27;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_ComponentReference_printComponentRefStr(threadData, _cr);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          tmpMeta28 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT16, mmc_mk_cons(_s2, mmc_mk_cons(_OMC_LIT24, MMC_REFSTRUCTLIT(mmc_nil)))));
          _res = stringAppendList(tmpMeta28);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT23, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT23);
          goto tmp2_done;
        }
        case 8: {
          modelica_metatype tmpMeta29;
          modelica_metatype tmpMeta30;
          modelica_metatype tmpMeta31;
          modelica_metatype tmpMeta32;
          modelica_metatype tmpMeta33;
          modelica_metatype tmpMeta34;
          modelica_metatype tmpMeta35;
          modelica_metatype tmpMeta36;
          if (1 /* true */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,5,4) == 0) goto tmp2_end;
          tmpMeta29 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta30 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta29), 2));
          tmpMeta31 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta29), 3));
          if (listEmpty(tmpMeta31)) goto tmp2_end;
          tmpMeta32 = MMC_CAR(tmpMeta31);
          tmpMeta33 = MMC_CDR(tmpMeta31);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta32,0,3) == 0) goto tmp2_end;
          tmpMeta34 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta32), 2));
          tmpMeta35 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta32), 3));
          if (!listEmpty(tmpMeta33)) goto tmp2_end;
          
          _e1 = tmpMeta30;
          _e = tmpMeta34;
          _e2 = tmpMeta35;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          _is = omc_XMLDump_printExpStr(threadData, _e1);

          tmpMeta36 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT16, mmc_mk_cons(_s2, mmc_mk_cons(_OMC_LIT24, MMC_REFSTRUCTLIT(mmc_nil)))));
          _res = stringAppendList(tmpMeta36);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT25, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT7, _OMC_LIT8, _OMC_LIT9);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT11);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT1);

          omc_Print_printBuf(threadData, _s1);

          omc_XMLDump_dumpExp2(threadData, _e2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpExp2(threadData, _OMC_LIT13);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT7);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT26);

          omc_Print_printBuf(threadData, _OMC_LIT27);

          omc_Print_printBuf(threadData, _is);

          omc_XMLDump_dumpExp(threadData, _e1, 1 /* true */);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT26);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT25);
          goto tmp2_done;
        }
        case 9: {
          modelica_metatype tmpMeta37;
          modelica_metatype tmpMeta38;
          modelica_metatype tmpMeta39;
          modelica_metatype tmpMeta40;
          modelica_metatype tmpMeta41;
          modelica_metatype tmpMeta42;
          modelica_metatype tmpMeta43;
          modelica_metatype tmpMeta44;
          if (0 /* false */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,5,4) == 0) goto tmp2_end;
          tmpMeta37 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta38 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta37), 2));
          tmpMeta39 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta37), 3));
          if (listEmpty(tmpMeta39)) goto tmp2_end;
          tmpMeta40 = MMC_CAR(tmpMeta39);
          tmpMeta41 = MMC_CDR(tmpMeta39);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta40,0,3) == 0) goto tmp2_end;
          tmpMeta42 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta40), 2));
          tmpMeta43 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta40), 3));
          if (!listEmpty(tmpMeta41)) goto tmp2_end;
          
          _e1 = tmpMeta38;
          _e = tmpMeta42;
          _e2 = tmpMeta43;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          _is = omc_XMLDump_printExpStr(threadData, _e1);

          tmpMeta44 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT16, mmc_mk_cons(_s2, mmc_mk_cons(_OMC_LIT24, MMC_REFSTRUCTLIT(mmc_nil)))));
          _res = stringAppendList(tmpMeta44);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT25, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrTagContent(threadData, _OMC_LIT26, _is);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT25);
          goto tmp2_done;
        }
        case 10: {
          modelica_metatype tmpMeta45;
          modelica_metatype tmpMeta46;
          if (1 /* true */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,3,3) == 0) goto tmp2_end;
          tmpMeta45 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          
          _e = tmpMeta45;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e);

          tmpMeta46 = stringAppend(_s1,_OMC_LIT28);
          _res = tmpMeta46;

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT29, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT7, _OMC_LIT8, _OMC_LIT9);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT11);

          omc_XMLDump_dumpExp2(threadData, _e);

          omc_XMLDump_dumpStrMathMLNumber(threadData, _OMC_LIT30);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT7);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT29);
          goto tmp2_done;
        }
        case 11: {
          modelica_metatype tmpMeta47;
          modelica_metatype tmpMeta48;
          if (0 /* false */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,3,3) == 0) goto tmp2_end;
          tmpMeta47 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          
          _e = tmpMeta47;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e);

          tmpMeta48 = stringAppend(_s1,_OMC_LIT28);
          _res = tmpMeta48;

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT29, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT29);
          goto tmp2_done;
        }
        case 12: {
          modelica_metatype tmpMeta49;
          modelica_metatype tmpMeta50;
          modelica_metatype tmpMeta51;
          modelica_metatype tmpMeta52;
          modelica_metatype tmpMeta53;
          modelica_metatype tmpMeta54;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,4,5) == 0) goto tmp2_end;
          tmpMeta49 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta50 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta49), 2));
          tmpMeta51 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          
          _stmts = tmpMeta50;
          _source = tmpMeta51;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT31, _OMC_LIT5, _indexS);

          tmpMeta53 = mmc_mk_box2(3, &DAE_Algorithm_ALGORITHM__STMTS__desc, _stmts);
          tmpMeta54 = mmc_mk_box3(19, &DAE_Element_ALGORITHM__desc, tmpMeta53, _source);
          tmpMeta52 = mmc_mk_cons(tmpMeta54, MMC_REFSTRUCTLIT(mmc_nil));
          omc_Print_printBuf(threadData, omc_Util_xmlEscape(threadData, omc_DAEDump_dumpAlgorithmsStr(threadData, tmpMeta52)));

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT31);
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpResidual(threadData_t *threadData, modelica_metatype _inEquation, modelica_metatype _inIndexNumber, modelica_metatype _addMathMLCode)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_addMathMLCode);
  omc_XMLDump_dumpResidual(threadData, _inEquation, _inIndexNumber, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_relopSymbol(threadData_t *threadData, modelica_metatype _inOperator)
{
  modelica_string _outString = NULL;
  modelica_string tmp1 = 0;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outString has no default value.
  { /* match expression */
    modelica_metatype tmp4_1;
    tmp4_1 = _inOperator;
    {
      modelica_string _error_msg = NULL;
      int tmp4;
      // _error_msg has no default value.
      {
        switch (MMC_SWITCH_CAST(valueConstructor(tmp4_1))) {
        case 28: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT32;
          goto tmp3_done;
        }
        case 29: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT33;
          goto tmp3_done;
        }
        case 30: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT34;
          goto tmp3_done;
        }
        case 31: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT35;
          goto tmp3_done;
        }
        case 32: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT11;
          goto tmp3_done;
        }
        case 33: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT36;
          goto tmp3_done;
        }
        default:
        tmp3_default: OMC_LABEL_UNUSED; {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          
          /* Pattern matching succeeded */
          _error_msg = _OMC_LIT37;

          tmpMeta5 = stringAppend(_error_msg,omc_ExpressionDump_debugBinopSymbol(threadData, _inOperator));
          _error_msg = tmpMeta5;

          tmpMeta6 = mmc_mk_cons(_error_msg, MMC_REFSTRUCTLIT(mmc_nil));
          omc_Error_addMessage(threadData, _OMC_LIT42, tmpMeta6);
          goto goto_2;
          goto tmp3_done;
        }
        }
        goto tmp3_end;
        tmp3_end: ;
      }
      goto goto_2;
      goto_2:;
      MMC_THROW_INTERNAL();
      goto tmp3_done;
      tmp3_done:;
    }
  }
  _outString = tmp1;
  _return: OMC_LABEL_UNUSED
  return _outString;
}

PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_lunaryopSymbol(threadData_t *threadData, modelica_metatype _inOperator)
{
  modelica_string _outString = NULL;
  modelica_string tmp1 = 0;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outString has no default value.
  { /* match expression */
    modelica_metatype tmp4_1;
    tmp4_1 = _inOperator;
    {
      modelica_string _error_msg = NULL;
      volatile mmc_switch_type tmp4;
      int tmp5;
      // _error_msg has no default value.
      tmp4 = 0;
      for (; tmp4 < 2; tmp4++) {
        switch (MMC_SWITCH_CAST(tmp4)) {
        case 0: {
          if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,24,1) == 0) goto tmp3_end;
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT43;
          goto tmp3_done;
        }
        case 1: {
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          
          /* Pattern matching succeeded */
          _error_msg = _OMC_LIT44;

          tmpMeta6 = stringAppend(_error_msg,omc_ExpressionDump_debugBinopSymbol(threadData, _inOperator));
          _error_msg = tmpMeta6;

          tmpMeta7 = mmc_mk_cons(_error_msg, MMC_REFSTRUCTLIT(mmc_nil));
          omc_Error_addMessage(threadData, _OMC_LIT42, tmpMeta7);
          goto goto_2;
          goto tmp3_done;
        }
        }
        goto tmp3_end;
        tmp3_end: ;
      }
      goto goto_2;
      goto_2:;
      MMC_THROW_INTERNAL();
      goto tmp3_done;
      tmp3_done:;
    }
  }
  _outString = tmp1;
  _return: OMC_LABEL_UNUSED
  return _outString;
}

PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_lbinopSymbol(threadData_t *threadData, modelica_metatype _inOperator)
{
  modelica_string _outString = NULL;
  modelica_string tmp1 = 0;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outString has no default value.
  { /* match expression */
    modelica_metatype tmp4_1;
    tmp4_1 = _inOperator;
    {
      modelica_string _error_msg = NULL;
      int tmp4;
      // _error_msg has no default value.
      {
        switch (MMC_SWITCH_CAST(valueConstructor(tmp4_1))) {
        case 25: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT45;
          goto tmp3_done;
        }
        case 26: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT46;
          goto tmp3_done;
        }
        default:
        tmp3_default: OMC_LABEL_UNUSED; {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          
          /* Pattern matching succeeded */
          _error_msg = _OMC_LIT47;

          tmpMeta5 = stringAppend(_error_msg,omc_ExpressionDump_debugBinopSymbol(threadData, _inOperator));
          _error_msg = tmpMeta5;

          tmpMeta6 = mmc_mk_cons(_error_msg, MMC_REFSTRUCTLIT(mmc_nil));
          omc_Error_addMessage(threadData, _OMC_LIT42, tmpMeta6);
          goto goto_2;
          goto tmp3_done;
        }
        }
        goto tmp3_end;
        tmp3_end: ;
      }
      goto goto_2;
      goto_2:;
      MMC_THROW_INTERNAL();
      goto tmp3_done;
      tmp3_done:;
    }
  }
  _outString = tmp1;
  _return: OMC_LABEL_UNUSED
  return _outString;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpZcLst(threadData_t *threadData, modelica_metatype _inZeroCrossingLst, modelica_boolean _addMathMLCode)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;modelica_boolean tmp3_2;
    tmp3_1 = _inZeroCrossingLst;
    tmp3_2 = _addMathMLCode;
    {
      modelica_metatype _e = NULL;
      modelica_boolean _addMMLCode;
      modelica_metatype _eq = NULL;
      modelica_metatype _zcLst = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _e has no default value.
      // _addMMLCode has no default value.
      // _eq has no default value.
      // _zcLst has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          modelica_metatype tmpMeta8;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 3));
          tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 4));
          
          _e = tmpMeta7;
          _eq = tmpMeta8;
          _zcLst = tmpMeta6;
          _addMMLCode = tmp3_2;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT48, _OMC_LIT19, omc_XMLDump_printExpStr(threadData, _e));

          omc_XMLDump_dumpExp(threadData, _e, _addMMLCode);

          omc_XMLDump_dumpLstIntAttr(threadData, _eq, _OMC_LIT49, _OMC_LIT50);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT48);

          /* Tail recursive call */
          _inZeroCrossingLst = _zcLst;
          _addMathMLCode = _addMMLCode;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpZcLst(threadData_t *threadData, modelica_metatype _inZeroCrossingLst, modelica_metatype _addMathMLCode)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_addMathMLCode);
  omc_XMLDump_dumpZcLst(threadData, _inZeroCrossingLst, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpZeroCrossing(threadData_t *threadData, modelica_metatype _zeroCross, modelica_string _inContent, modelica_boolean _addMathMLCode)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _zeroCross;
    {
      modelica_integer _len;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _len has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          
          /* Pattern matching succeeded */
          _len = listLength(_zeroCross);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _inContent, _OMC_LIT51, intString(_len));

          omc_XMLDump_dumpZcLst(threadData, _zeroCross, _addMathMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _inContent);
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpZeroCrossing(threadData_t *threadData, modelica_metatype _zeroCross, modelica_metatype _inContent, modelica_metatype _addMathMLCode)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_addMathMLCode);
  omc_XMLDump_dumpZeroCrossing(threadData, _zeroCross, _inContent, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpSampleLst(threadData_t *threadData, modelica_metatype _inSamples, modelica_boolean _addMathMLCode)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;modelica_boolean tmp3_2;
    tmp3_1 = _inSamples;
    tmp3_2 = _addMathMLCode;
    {
      modelica_metatype _e1 = NULL;
      modelica_metatype _e2 = NULL;
      modelica_integer _i;
      modelica_boolean _addMMLCode;
      modelica_metatype _lst = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _e1 has no default value.
      // _e2 has no default value.
      // _i has no default value.
      // _addMMLCode has no default value.
      // _lst has no default value.
      tmp3 = 0;
      for (; tmp3 < 3; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta5,0,0) == 0) goto tmp2_end;
          
          _lst = tmpMeta6;
          _addMMLCode = tmp3_2;
          /* Pattern matching succeeded */
          /* Tail recursive call */
          _inSamples = _lst;
          _addMathMLCode = _addMMLCode;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          goto tmp2_done;
        }
        case 2: {
          modelica_metatype tmpMeta7;
          modelica_metatype tmpMeta8;
          modelica_metatype tmpMeta9;
          modelica_integer tmp10;
          modelica_metatype tmpMeta11;
          modelica_metatype tmpMeta12;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta7 = MMC_CAR(tmp3_1);
          tmpMeta8 = MMC_CDR(tmp3_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,1,3) == 0) goto tmp2_end;
          tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 2));
          tmp10 = mmc_unbox_integer(tmpMeta9);
          tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 3));
          tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 4));
          
          _i = tmp10  /* pattern as ty=Integer */;
          _e1 = tmpMeta11;
          _e2 = tmpMeta12;
          _lst = tmpMeta8;
          _addMMLCode = tmp3_2;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT52);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT53, _OMC_LIT54, intString(_i));

          omc_XMLDump_dumpExp(threadData, _e1, _addMMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT53);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT55, _OMC_LIT19, omc_XMLDump_printExpStr(threadData, _e1));

          omc_XMLDump_dumpExp(threadData, _e1, _addMMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT55);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT56, _OMC_LIT19, omc_XMLDump_printExpStr(threadData, _e2));

          omc_XMLDump_dumpExp(threadData, _e2, _addMMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT56);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT52);

          /* Tail recursive call */
          _inSamples = _lst;
          _addMathMLCode = _addMMLCode;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpSampleLst(threadData_t *threadData, modelica_metatype _inSamples, modelica_metatype _addMathMLCode)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_addMathMLCode);
  omc_XMLDump_dumpSampleLst(threadData, _inSamples, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpTimeEvents(threadData_t *threadData, modelica_metatype _inTimeEvents, modelica_string _inContent, modelica_boolean _addMathMLCode)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _inTimeEvents;
    {
      modelica_integer _len;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _len has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          
          /* Pattern matching succeeded */
          _len = listLength(_inTimeEvents);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _inContent, _OMC_LIT51, intString(_len));

          omc_XMLDump_dumpSampleLst(threadData, _inTimeEvents, _addMathMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _inContent);
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpTimeEvents(threadData_t *threadData, modelica_metatype _inTimeEvents, modelica_metatype _inContent, modelica_metatype _addMathMLCode)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_addMathMLCode);
  omc_XMLDump_dumpTimeEvents(threadData, _inTimeEvents, _inContent, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpWhenOperatorLst(threadData_t *threadData, modelica_metatype _inWhenOperators, modelica_boolean _addMathMLCode)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;modelica_boolean tmp3_2;
    tmp3_1 = _inWhenOperators;
    tmp3_2 = _addMathMLCode;
    {
      modelica_metatype _stateVar = NULL;
      modelica_metatype _cond = NULL;
      modelica_metatype _msg = NULL;
      modelica_metatype _level = NULL;
      modelica_metatype _left = NULL;
      modelica_metatype _e = NULL;
      modelica_metatype _value = NULL;
      modelica_metatype _call = NULL;
      modelica_metatype _lst = NULL;
      modelica_string _str = NULL;
      modelica_string _s1 = NULL;
      modelica_string _s2 = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _stateVar has no default value.
      // _cond has no default value.
      // _msg has no default value.
      // _level has no default value.
      // _left has no default value.
      // _e has no default value.
      // _value has no default value.
      // _call has no default value.
      // _lst has no default value.
      // _str has no default value.
      // _s1 has no default value.
      // _s2 has no default value.
      tmp3 = 0;
      for (; tmp3 < 7; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          modelica_metatype tmpMeta8;
          modelica_metatype tmpMeta9;
          if (1 /* true */ != tmp3_2) goto tmp2_end;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta5,0,3) == 0) goto tmp2_end;
          tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 2));
          tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 3));
          
          _left = tmpMeta7;
          _value = tmpMeta8;
          _lst = tmpMeta6;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _left);

          _s2 = omc_XMLDump_printExpStr(threadData, _value);

          tmpMeta9 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT57, mmc_mk_cons(_s2, MMC_REFSTRUCTLIT(mmc_nil))));
          _str = stringAppendList(tmpMeta9);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT58);

          omc_Print_printBuf(threadData, _OMC_LIT27);

          omc_Print_printBuf(threadData, _str);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT58);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT7, _OMC_LIT8, _OMC_LIT9);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT11);

          omc_XMLDump_dumpStrMathMLVariable(threadData, _s1);

          omc_XMLDump_dumpExp2(threadData, _value);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT7);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT6);

          /* Tail recursive call */
          _inWhenOperators = _lst;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          goto tmp2_done;
        }
        case 2: {
          modelica_metatype tmpMeta10;
          modelica_metatype tmpMeta11;
          modelica_metatype tmpMeta12;
          modelica_metatype tmpMeta13;
          modelica_metatype tmpMeta14;
          if (0 /* false */ != tmp3_2) goto tmp2_end;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta10 = MMC_CAR(tmp3_1);
          tmpMeta11 = MMC_CDR(tmp3_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta10,0,3) == 0) goto tmp2_end;
          tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 2));
          tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta10), 3));
          
          _left = tmpMeta12;
          _value = tmpMeta13;
          _lst = tmpMeta11;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _left);

          _s2 = omc_XMLDump_printExpStr(threadData, _value);

          tmpMeta14 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT57, mmc_mk_cons(_s2, MMC_REFSTRUCTLIT(mmc_nil))));
          _str = stringAppendList(tmpMeta14);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT58);

          omc_Print_printBuf(threadData, _OMC_LIT27);

          omc_Print_printBuf(threadData, _str);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT58);

          /* Tail recursive call */
          _inWhenOperators = _lst;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          goto tmp2_done;
        }
        case 3: {
          modelica_metatype tmpMeta15;
          modelica_metatype tmpMeta16;
          modelica_metatype tmpMeta17;
          modelica_metatype tmpMeta18;
          modelica_metatype tmpMeta19;
          modelica_metatype tmpMeta20;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta15 = MMC_CAR(tmp3_1);
          tmpMeta16 = MMC_CDR(tmp3_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta15,1,3) == 0) goto tmp2_end;
          tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta15), 2));
          tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta15), 3));
          
          _stateVar = tmpMeta17;
          _value = tmpMeta18;
          _lst = tmpMeta16;
          /* Pattern matching succeeded */
          _e = omc_Expression_makeCrefExp(threadData, _stateVar, _OMC_LIT59);

          tmpMeta19 = mmc_mk_cons(_e, mmc_mk_cons(_value, MMC_REFSTRUCTLIT(mmc_nil)));
          tmpMeta20 = mmc_mk_box4(16, &DAE_Exp_CALL__desc, _OMC_LIT61, tmpMeta19, _OMC_LIT64);
          _call = tmpMeta20;

          _str = omc_XMLDump_printExpStr(threadData, _call);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT58);

          omc_Print_printBuf(threadData, _OMC_LIT27);

          omc_Print_printBuf(threadData, _str);

          omc_XMLDump_dumpExp(threadData, _call, _addMathMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT58);

          /* Tail recursive call */
          _inWhenOperators = _lst;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          goto tmp2_done;
        }
        case 4: {
          modelica_metatype tmpMeta21;
          modelica_metatype tmpMeta22;
          modelica_metatype tmpMeta23;
          modelica_metatype tmpMeta24;
          modelica_metatype tmpMeta25;
          modelica_metatype tmpMeta26;
          modelica_metatype tmpMeta27;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta21 = MMC_CAR(tmp3_1);
          tmpMeta22 = MMC_CDR(tmp3_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta21,2,4) == 0) goto tmp2_end;
          tmpMeta23 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta21), 2));
          tmpMeta24 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta21), 3));
          tmpMeta25 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta21), 4));
          
          _cond = tmpMeta23;
          _msg = tmpMeta24;
          _level = tmpMeta25;
          _lst = tmpMeta22;
          /* Pattern matching succeeded */
          tmpMeta26 = mmc_mk_cons(_cond, mmc_mk_cons(_msg, mmc_mk_cons(_level, MMC_REFSTRUCTLIT(mmc_nil))));
          tmpMeta27 = mmc_mk_box4(16, &DAE_Exp_CALL__desc, _OMC_LIT66, tmpMeta26, _OMC_LIT64);
          _call = tmpMeta27;

          _str = omc_XMLDump_printExpStr(threadData, _call);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT58);

          omc_Print_printBuf(threadData, _OMC_LIT27);

          omc_Print_printBuf(threadData, _str);

          omc_XMLDump_dumpExp(threadData, _call, _addMathMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT58);

          /* Tail recursive call */
          _inWhenOperators = _lst;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          goto tmp2_done;
        }
        case 5: {
          modelica_metatype tmpMeta28;
          modelica_metatype tmpMeta29;
          modelica_metatype tmpMeta30;
          modelica_metatype tmpMeta31;
          modelica_metatype tmpMeta32;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta28 = MMC_CAR(tmp3_1);
          tmpMeta29 = MMC_CDR(tmp3_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta28,3,2) == 0) goto tmp2_end;
          tmpMeta30 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta28), 2));
          
          _msg = tmpMeta30;
          _lst = tmpMeta29;
          /* Pattern matching succeeded */
          tmpMeta31 = mmc_mk_cons(_msg, MMC_REFSTRUCTLIT(mmc_nil));
          tmpMeta32 = mmc_mk_box4(16, &DAE_Exp_CALL__desc, _OMC_LIT68, tmpMeta31, _OMC_LIT64);
          _call = tmpMeta32;

          _str = omc_XMLDump_printExpStr(threadData, _call);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT58);

          omc_Print_printBuf(threadData, _OMC_LIT27);

          omc_Print_printBuf(threadData, _str);

          omc_XMLDump_dumpExp(threadData, _call, _addMathMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT58);

          /* Tail recursive call */
          _inWhenOperators = _lst;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          goto tmp2_done;
        }
        case 6: {
          modelica_metatype tmpMeta33;
          modelica_metatype tmpMeta34;
          modelica_metatype tmpMeta35;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta33 = MMC_CAR(tmp3_1);
          tmpMeta34 = MMC_CDR(tmp3_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta33,4,2) == 0) goto tmp2_end;
          tmpMeta35 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta33), 2));
          
          _call = tmpMeta35;
          _lst = tmpMeta34;
          /* Pattern matching succeeded */
          _str = omc_XMLDump_printExpStr(threadData, _call);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT58);

          omc_Print_printBuf(threadData, _OMC_LIT27);

          omc_Print_printBuf(threadData, _str);

          omc_XMLDump_dumpExp(threadData, _call, _addMathMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT58);

          /* Tail recursive call */
          _inWhenOperators = _lst;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpWhenOperatorLst(threadData_t *threadData, modelica_metatype _inWhenOperators, modelica_metatype _addMathMLCode)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_addMathMLCode);
  omc_XMLDump_dumpWhenOperatorLst(threadData, _inWhenOperators, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpWhenOperators(threadData_t *threadData, modelica_metatype _inWhenOperators, modelica_string _inContent, modelica_boolean _addMathMLCode)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _inWhenOperators;
    {
      modelica_integer _len;
      modelica_metatype _lst = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _len has no default value.
      // _lst has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          
          _lst = tmp3_1;
          /* Pattern matching succeeded */
          _len = listLength(_lst);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _inContent, _OMC_LIT51, intString(_len));

          omc_XMLDump_dumpWhenOperatorLst(threadData, _lst, _addMathMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _inContent);
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpWhenOperators(threadData_t *threadData, modelica_metatype _inWhenOperators, modelica_metatype _inContent, modelica_metatype _addMathMLCode)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_addMathMLCode);
  omc_XMLDump_dumpWhenOperators(threadData, _inWhenOperators, _inContent, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpVarsAdds2(threadData_t *threadData, modelica_metatype _inVarLst, modelica_metatype _crefIdxLstArr, modelica_integer _inInteger, modelica_boolean _addMMLCode)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;modelica_integer tmp3_2;
    tmp3_1 = _inVarLst;
    tmp3_2 = _inInteger;
    {
      modelica_integer _varno;
      modelica_metatype _v = NULL;
      modelica_metatype _cr = NULL;
      modelica_metatype _kind = NULL;
      modelica_metatype _dir = NULL;
      modelica_metatype _e = NULL;
      modelica_metatype _paths = NULL;
      modelica_metatype _dae_var_attr = NULL;
      modelica_metatype _comment = NULL;
      modelica_metatype _ct = NULL;
      modelica_metatype _xs = NULL;
      modelica_metatype _var_type = NULL;
      modelica_integer _var_1;
      modelica_metatype _source = NULL;
      modelica_string _error_msg = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _varno has no default value.
      // _v has no default value.
      // _cr has no default value.
      // _kind has no default value.
      // _dir has no default value.
      // _e has no default value.
      // _paths has no default value.
      // _dae_var_attr has no default value.
      // _comment has no default value.
      // _ct has no default value.
      // _xs has no default value.
      // _var_type has no default value.
      // _var_1 has no default value.
      // _source has no default value.
      // _error_msg has no default value.
      tmp3 = 0;
      for (; tmp3 < 3; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          modelica_metatype tmpMeta8;
          modelica_metatype tmpMeta9;
          modelica_metatype tmpMeta10;
          modelica_metatype tmpMeta11;
          modelica_metatype tmpMeta12;
          modelica_metatype tmpMeta13;
          modelica_metatype tmpMeta14;
          modelica_metatype tmpMeta15;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 2));
          tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 3));
          tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 4));
          tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 6));
          tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 7));
          tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 10));
          tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 11));
          tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 14));
          tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 15));
          
          _v = tmpMeta5;
          _cr = tmpMeta7;
          _kind = tmpMeta8;
          _dir = tmpMeta9;
          _var_type = tmpMeta10;
          _e = tmpMeta11;
          _source = tmpMeta12;
          _dae_var_attr = tmpMeta13;
          _comment = tmpMeta14;
          _ct = tmpMeta15;
          _xs = tmpMeta6;
          _varno = tmp3_2;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpVariable(threadData, intString(_varno), omc_ComponentReference_printComponentRefStr(threadData, _cr), omc_XMLDump_dumpKind(threadData, _kind), omc_XMLDump_dumpDirectionStr(threadData, _dir), omc_XMLDump_dumpTypeStr(threadData, _var_type), omc_XMLDump_getIndex(threadData, _kind), omc_XMLDump_getDerName(threadData, _kind), (omc_BackendVariable_varFixed(threadData, _v)?_OMC_LIT69:_OMC_LIT70), omc_XMLDump_dumpFlowStr(threadData, _ct), omc_XMLDump_dumpStreamStr(threadData, _ct), omc_DAEDump_dumpCommentAnnotationStr(threadData, _comment));

          omc_XMLDump_dumpBindExpression(threadData, _e, _addMMLCode);

          _paths = omc_ElementSource_getElementSourceTypes(threadData, _source);

          omc_XMLDump_dumpAbsynPathLst(threadData, _paths, _OMC_LIT71);

          omc_XMLDump_dumpDAEVariableAttributes(threadData, _dae_var_attr, _OMC_LIT72, _addMMLCode);

          omc_XMLDump_dumpVarsAdditionalInfo(threadData, _crefIdxLstArr, _varno);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT73);

          _var_1 = ((modelica_integer) 1) + _varno;

          /* Tail recursive call */
          _inVarLst = _xs;
          _inInteger = _var_1;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          goto tmp2_done;
        }
        case 2: {
          modelica_metatype tmpMeta16;
          modelica_metatype tmpMeta17;
          modelica_metatype tmpMeta18;
          modelica_metatype tmpMeta19;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta16 = MMC_CAR(tmp3_1);
          tmpMeta17 = MMC_CDR(tmp3_1);
          
          _xs = tmpMeta17;
          _varno = tmp3_2;
          /* Pattern matching succeeded */
          _error_msg = _OMC_LIT74;

          tmpMeta18 = stringAppend(_error_msg,intString(_varno));
          _error_msg = tmpMeta18;

          tmpMeta19 = mmc_mk_cons(_error_msg, MMC_REFSTRUCTLIT(mmc_nil));
          omc_Error_addMessage(threadData, _OMC_LIT42, tmpMeta19);

          _var_1 = ((modelica_integer) 1) + _varno;

          /* Tail recursive call */
          _inVarLst = _xs;
          _inInteger = _var_1;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpVarsAdds2(threadData_t *threadData, modelica_metatype _inVarLst, modelica_metatype _crefIdxLstArr, modelica_metatype _inInteger, modelica_metatype _addMMLCode)
{
  modelica_integer tmp1;
  modelica_integer tmp2;
  tmp1 = mmc_unbox_integer(_inInteger);
  tmp2 = mmc_unbox_integer(_addMMLCode);
  omc_XMLDump_dumpVarsAdds2(threadData, _inVarLst, _crefIdxLstArr, tmp1, tmp2);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpVars2(threadData_t *threadData, modelica_metatype _inVarLst, modelica_integer _inInteger, modelica_boolean _addMathMLCode)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;modelica_integer tmp3_2;modelica_boolean tmp3_3;
    tmp3_1 = _inVarLst;
    tmp3_2 = _inInteger;
    tmp3_3 = _addMathMLCode;
    {
      modelica_integer _varno;
      modelica_metatype _v = NULL;
      modelica_metatype _cr = NULL;
      modelica_metatype _kind = NULL;
      modelica_metatype _dir = NULL;
      modelica_metatype _e = NULL;
      modelica_metatype _paths = NULL;
      modelica_metatype _dae_var_attr = NULL;
      modelica_metatype _comment = NULL;
      modelica_metatype _ct = NULL;
      modelica_metatype _xs = NULL;
      modelica_metatype _var_type = NULL;
      modelica_integer _var_1;
      modelica_boolean _addMMLCode;
      modelica_metatype _source = NULL;
      modelica_metatype _scalarVar = NULL;
      modelica_metatype _scalar_crefs = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _varno has no default value.
      // _v has no default value.
      // _cr has no default value.
      // _kind has no default value.
      // _dir has no default value.
      // _e has no default value.
      // _paths has no default value.
      // _dae_var_attr has no default value.
      // _comment has no default value.
      // _ct has no default value.
      // _xs has no default value.
      // _var_type has no default value.
      // _var_1 has no default value.
      // _addMMLCode has no default value.
      // _source has no default value.
      // _scalarVar has no default value.
      // _scalar_crefs has no default value.
      tmp3 = 0;
      for (; tmp3 < 3; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          modelica_metatype tmpMeta8;
          modelica_metatype tmpMeta9;
          modelica_metatype tmpMeta10;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          
          _v = tmpMeta5;
          _xs = tmpMeta6;
          _varno = tmp3_2;
          _addMMLCode = tmp3_3;
          /* Pattern matching succeeded */
          /* Check guard condition after assignments */
          if (!(omc_BackendVariable_isParam(threadData, _v) && omc_Types_isArray(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_v), 6)))))) goto tmp2_end;
          _scalar_crefs = omc_ComponentReference_expandCref(threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_v), 2))), 0 /* false */);

          {
            modelica_metatype _cref;
            for (tmpMeta7 = _scalar_crefs; !listEmpty(tmpMeta7); tmpMeta7=MMC_CDR(tmpMeta7))
            {
              _cref = MMC_CAR(tmpMeta7);
              _scalarVar = omc_BackendVariable_copyVarNewName(threadData, _cref, _v);

              tmpMeta8 = MMC_TAGPTR(mmc_alloc_words(20));
              memcpy(MMC_UNTAGPTR(tmpMeta8), MMC_UNTAGPTR(_scalarVar), 20*sizeof(modelica_metatype));
              ((modelica_metatype*)MMC_UNTAGPTR(tmpMeta8))[6] = omc_ComponentReference_crefTypeFull(threadData, _cref);
              _scalarVar = tmpMeta8;

              tmpMeta9 = mmc_mk_cons(_scalarVar, MMC_REFSTRUCTLIT(mmc_nil));
              omc_XMLDump_dumpVars2(threadData, tmpMeta9, _varno, _addMMLCode);

              _varno = ((modelica_integer) 1) + _varno;
            }
          }

          /* Tail recursive call */
          _inVarLst = _xs;
          _inInteger = _varno;
          _addMathMLCode = _addMMLCode;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          goto tmp2_done;
        }
        case 2: {
          modelica_metatype tmpMeta11;
          modelica_metatype tmpMeta12;
          modelica_metatype tmpMeta13;
          modelica_metatype tmpMeta14;
          modelica_metatype tmpMeta15;
          modelica_metatype tmpMeta16;
          modelica_metatype tmpMeta17;
          modelica_metatype tmpMeta18;
          modelica_metatype tmpMeta19;
          modelica_metatype tmpMeta20;
          modelica_metatype tmpMeta21;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta11 = MMC_CAR(tmp3_1);
          tmpMeta12 = MMC_CDR(tmp3_1);
          tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 2));
          tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 3));
          tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 4));
          tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 6));
          tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 7));
          tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 10));
          tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 11));
          tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 14));
          tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 15));
          
          _v = tmpMeta11;
          _cr = tmpMeta13;
          _kind = tmpMeta14;
          _dir = tmpMeta15;
          _var_type = tmpMeta16;
          _e = tmpMeta17;
          _source = tmpMeta18;
          _dae_var_attr = tmpMeta19;
          _comment = tmpMeta20;
          _ct = tmpMeta21;
          _xs = tmpMeta12;
          _varno = tmp3_2;
          _addMMLCode = tmp3_3;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpVariable(threadData, intString(_varno), omc_ComponentReference_printComponentRefStr(threadData, _cr), omc_XMLDump_dumpKind(threadData, _kind), omc_XMLDump_dumpDirectionStr(threadData, _dir), omc_XMLDump_dumpTypeStr(threadData, _var_type), omc_XMLDump_getIndex(threadData, _kind), omc_XMLDump_getDerName(threadData, _kind), (omc_BackendVariable_varFixed(threadData, _v)?_OMC_LIT69:_OMC_LIT70), omc_XMLDump_dumpFlowStr(threadData, _ct), omc_XMLDump_dumpStreamStr(threadData, _ct), omc_XMLDump_unparseCommentOptionNoAnnotation(threadData, _comment));

          omc_XMLDump_dumpBindExpression(threadData, _e, _addMMLCode);

          _paths = omc_ElementSource_getElementSourceTypes(threadData, _source);

          omc_XMLDump_dumpAbsynPathLst(threadData, _paths, _OMC_LIT71);

          omc_XMLDump_dumpDAEVariableAttributes(threadData, _dae_var_attr, _OMC_LIT72, _addMMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT73);

          _var_1 = ((modelica_integer) 1) + _varno;

          /* Tail recursive call */
          _inVarLst = _xs;
          _inInteger = _var_1;
          _addMathMLCode = _addMMLCode;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpVars2(threadData_t *threadData, modelica_metatype _inVarLst, modelica_metatype _inInteger, modelica_metatype _addMathMLCode)
{
  modelica_integer tmp1;
  modelica_integer tmp2;
  tmp1 = mmc_unbox_integer(_inInteger);
  tmp2 = mmc_unbox_integer(_addMathMLCode);
  omc_XMLDump_dumpVars2(threadData, _inVarLst, tmp1, tmp2);
  return;
}

PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_getDerName(threadData_t *threadData, modelica_metatype _kind)
{
  modelica_string _derName = NULL;
  modelica_string tmp1 = 0;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _derName has no default value.
  { /* match expression */
    modelica_metatype tmp4_1;
    tmp4_1 = _kind;
    {
      modelica_metatype _cr = NULL;
      volatile mmc_switch_type tmp4;
      int tmp5;
      // _cr has no default value.
      tmp4 = 0;
      for (; tmp4 < 2; tmp4++) {
        switch (MMC_SWITCH_CAST(tmp4)) {
        case 0: {
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,3) == 0) goto tmp3_end;
          tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 3));
          if (optionNone(tmpMeta6)) goto tmp3_end;
          tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 1));
          
          _cr = tmpMeta7;
          /* Pattern matching succeeded */
          tmp1 = omc_ComponentReference_printComponentRefStr(threadData, _cr);
          goto tmp3_done;
        }
        case 1: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT0;
          goto tmp3_done;
        }
        }
        goto tmp3_end;
        tmp3_end: ;
      }
      goto goto_2;
      goto_2:;
      MMC_THROW_INTERNAL();
      goto tmp3_done;
      tmp3_done:;
    }
  }
  _derName = tmp1;
  _return: OMC_LABEL_UNUSED
  return _derName;
}

PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_getIndex(threadData_t *threadData, modelica_metatype _kind)
{
  modelica_string _diffIndex = NULL;
  modelica_string tmp1 = 0;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _diffIndex has no default value.
  { /* match expression */
    modelica_metatype tmp4_1;
    tmp4_1 = _kind;
    {
      modelica_integer _di;
      volatile mmc_switch_type tmp4;
      int tmp5;
      // _di has no default value.
      tmp4 = 0;
      for (; tmp4 < 2; tmp4++) {
        switch (MMC_SWITCH_CAST(tmp4)) {
        case 0: {
          modelica_metatype tmpMeta6;
          modelica_integer tmp7;
          if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,1,3) == 0) goto tmp3_end;
          tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
          tmp7 = mmc_unbox_integer(tmpMeta6);
          
          _di = tmp7  /* pattern as ty=Integer */;
          /* Pattern matching succeeded */
          tmp1 = intString(_di);
          goto tmp3_done;
        }
        case 1: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT0;
          goto tmp3_done;
        }
        }
        goto tmp3_end;
        tmp3_end: ;
      }
      goto goto_2;
      goto_2:;
      MMC_THROW_INTERNAL();
      goto tmp3_done;
      tmp3_done:;
    }
  }
  _diffIndex = tmp1;
  _return: OMC_LABEL_UNUSED
  return _diffIndex;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpVars(threadData_t *threadData, modelica_metatype _vars, modelica_metatype _crefIdxLstArr, modelica_string _Content, modelica_boolean _addMathMLCode)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_metatype tmp3_1;volatile modelica_boolean tmp3_2;
    tmp3_1 = _vars;
    tmp3_2 = _addMathMLCode;
    {
      modelica_integer _len;
      modelica_boolean _addMMLCode;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _len has no default value.
      // _addMMLCode has no default value.
      tmp3 = 0;
      MMC_TRY_INTERNAL(mmc_jumper)
      tmp2_top:
      threadData->mmc_jumper = &new_mmc_jumper;
      for (; tmp3 < 3; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          
          _addMMLCode = tmp3_2;
          /* Pattern matching succeeded */
          /* Check guard condition after assignments */
          if (!(!listEmpty(arrayGet(_crefIdxLstArr,((modelica_integer) 1)) /* DAE.ASUB */))) goto tmp2_end;
          _len = listLength(_vars);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _Content, _OMC_LIT51, intString(_len));

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT75);

          omc_XMLDump_dumpVars2(threadData, _vars, ((modelica_integer) 1), _addMMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT75);

          omc_XMLDump_dumpStrCloseTag(threadData, _Content);
          goto tmp2_done;
        }
        case 2: {
          
          _addMMLCode = tmp3_2;
          /* Pattern matching succeeded */
          _len = listLength(_vars);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _Content, _OMC_LIT51, intString(_len));

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT75);

          omc_XMLDump_dumpVars2(threadData, _vars, ((modelica_integer) 1), _addMMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT75);

          omc_XMLDump_dumpStrCloseTag(threadData, _Content);
          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 < 3) {
        goto tmp2_top;
      }
      MMC_THROW_INTERNAL();
      tmp2_done2:;
    }
  }
  ;
  _return: OMC_LABEL_UNUSED
  return;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpVars(threadData_t *threadData, modelica_metatype _vars, modelica_metatype _crefIdxLstArr, modelica_metatype _Content, modelica_metatype _addMathMLCode)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_addMathMLCode);
  omc_XMLDump_dumpVars(threadData, _vars, _crefIdxLstArr, _Content, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpVarsAdditionalInfo(threadData_t *threadData, modelica_metatype _crefIdxLstArr, modelica_integer _i)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    {
      modelica_string _error_msg = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _error_msg has no default value.
      tmp3 = 0;
      MMC_TRY_INTERNAL(mmc_jumper)
      tmp2_top:
      threadData->mmc_jumper = &new_mmc_jumper;
      for (; tmp3 < 3; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          /* Pattern matching succeeded */
          /* Check guard condition after assignments */
          if (!listEmpty(arrayGet(_crefIdxLstArr,((modelica_integer) 1)) /* DAE.ASUB */)) goto tmp2_end;
          goto tmp2_done;
        }
        case 1: {
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT76);

          omc_XMLDump_dumpCrefIdxLstArr(threadData, _crefIdxLstArr, _OMC_LIT77, _i);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT76);
          goto tmp2_done;
        }
        case 2: {
          modelica_metatype tmpMeta5;
          /* Pattern matching succeeded */
          _error_msg = _OMC_LIT78;

          tmpMeta5 = mmc_mk_cons(_error_msg, MMC_REFSTRUCTLIT(mmc_nil));
          omc_Error_addMessage(threadData, _OMC_LIT42, tmpMeta5);
          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 < 3) {
        goto tmp2_top;
      }
      MMC_THROW_INTERNAL();
      tmp2_done2:;
    }
  }
  ;
  _return: OMC_LABEL_UNUSED
  return;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpVarsAdditionalInfo(threadData_t *threadData, modelica_metatype _crefIdxLstArr, modelica_metatype _i)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_i);
  omc_XMLDump_dumpVarsAdditionalInfo(threadData, _crefIdxLstArr, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_printIndexAndDerName(threadData_t *threadData, modelica_string _indx, modelica_string _derName)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_string tmp3_1;modelica_string tmp3_2;
    tmp3_1 = _indx;
    tmp3_2 = _derName;
    {
      volatile mmc_switch_type tmp3;
      int tmp4;
      tmp3 = 0;
      for (; tmp3 < 4; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (0 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
          if (0 != MMC_STRLEN(tmp3_2) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_2)) != 0) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          if (0 != MMC_STRLEN(tmp3_2) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_2)) != 0) goto tmp2_end;
          
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT80);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _indx);
          goto tmp2_done;
        }
        case 2: {
          if (0 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
          
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT82);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _derName);
          goto tmp2_done;
        }
        case 3: {
          
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT80);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _indx);

          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT82);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _derName);
          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;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpVariable(threadData_t *threadData, modelica_string _varno, modelica_string _cr, modelica_string _kind, modelica_string _dir, modelica_string _var_type, modelica_string _indx, modelica_string _derName, modelica_string _varFixed, modelica_string _flowPrefix, modelica_string _streamPrefix, modelica_string _comment)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_string tmp3_1;
    tmp3_1 = _comment;
    {
      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: {
          if (0 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT83);

          omc_Print_printBuf(threadData, _OMC_LIT73);

          omc_Print_printBuf(threadData, _OMC_LIT84);

          omc_Print_printBuf(threadData, _OMC_LIT5);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _varno);

          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT85);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _cr);

          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT86);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _kind);

          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT87);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _dir);

          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT88);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _var_type);

          omc_XMLDump_printIndexAndDerName(threadData, _indx, _derName);

          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT89);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _varFixed);

          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT90);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _flowPrefix);

          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT91);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _streamPrefix);

          omc_Print_printBuf(threadData, _OMC_LIT92);
          goto tmp2_done;
        }
        case 1: {
          
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT83);

          omc_Print_printBuf(threadData, _OMC_LIT73);

          omc_Print_printBuf(threadData, _OMC_LIT84);

          omc_Print_printBuf(threadData, _OMC_LIT5);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _varno);

          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT85);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _cr);

          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT86);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _kind);

          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT87);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _dir);

          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT88);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _var_type);

          omc_XMLDump_printIndexAndDerName(threadData, _indx, _derName);

          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT89);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _varFixed);

          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT90);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _flowPrefix);

          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT91);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _streamPrefix);

          omc_Print_printBuf(threadData, _OMC_LIT79);

          omc_Print_printBuf(threadData, _OMC_LIT93);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, omc_Util_xmlEscape(threadData, _comment));

          omc_Print_printBuf(threadData, _OMC_LIT92);
          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_string omc_XMLDump_dumpTypeStr(threadData_t *threadData, modelica_metatype _inType)
{
  modelica_string _outString = NULL;
  modelica_string tmp1 = 0;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outString has no default value.
  { /* match expression */
    modelica_metatype tmp4_1;
    tmp4_1 = _inType;
    {
      modelica_string _s1 = NULL;
      modelica_string _s2 = NULL;
      modelica_metatype _l = NULL;
      int tmp4;
      // _s1 has no default value.
      // _s2 has no default value.
      // _l has no default value.
      {
        switch (MMC_SWITCH_CAST(valueConstructor(tmp4_1))) {
        case 3: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT94;
          goto tmp3_done;
        }
        case 4: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT95;
          goto tmp3_done;
        }
        case 6: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT96;
          goto tmp3_done;
        }
        case 5: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT97;
          goto tmp3_done;
        }
        case 8: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          modelica_metatype tmpMeta8;
          if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,5,5) == 0) goto tmp3_end;
          tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 4));
          
          _l = tmpMeta5;
          /* Pattern matching succeeded */
          _s1 = stringDelimitList(_l, _OMC_LIT98);

          tmpMeta6 = stringAppend(_OMC_LIT100,_s1);
          tmpMeta7 = stringAppend(_OMC_LIT99,tmpMeta6);
          _s2 = tmpMeta7;
          tmpMeta8 = stringAppend(_s2,_OMC_LIT101);
          tmp1 = tmpMeta8;
          goto tmp3_done;
        }
        case 12: {
          modelica_metatype tmpMeta9;
          if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,9,4) == 0) goto tmp3_end;
          tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta9,17,1) == 0) goto tmp3_end;
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT102;
          goto tmp3_done;
        }
        }
        goto tmp3_end;
        tmp3_end: ;
      }
      goto goto_2;
      goto_2:;
      MMC_THROW_INTERNAL();
      goto tmp3_done;
      tmp3_done:;
    }
  }
  _outString = tmp1;
  _return: OMC_LABEL_UNUSED
  return _outString;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpDimension(threadData_t *threadData, modelica_metatype _inDimension)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _inDimension;
    {
      modelica_metatype _e1 = NULL;
      modelica_integer _i;
      int tmp3;
      // _e1 has no default value.
      // _i has no default value.
      {
        switch (MMC_SWITCH_CAST(valueConstructor(tmp3_1))) {
        case 3: {
          modelica_metatype tmpMeta4;
          modelica_integer tmp5;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,0,1) == 0) goto tmp2_end;
          tmpMeta4 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmp5 = mmc_unbox_integer(tmpMeta4);
          _i = tmp5  /* pattern as ty=Integer */;
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, intString(_i));
          goto tmp2_done;
        }
        case 5: {
          
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT103);
          goto tmp2_done;
        }
        case 6: {
          modelica_metatype tmpMeta6;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,3,1) == 0) goto tmp2_end;
          tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          _e1 = tmpMeta6;
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, omc_XMLDump_printExpStr(threadData, _e1));
          goto tmp2_done;
        }
        case 7: {
          
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT104);
          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;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpStrVoidTag(threadData_t *threadData, modelica_string _inElementName)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_string tmp3_1;
    tmp3_1 = _inElementName;
    {
      modelica_string _ElementName = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _ElementName has no default value.
      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: {
          if (0 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          
          _ElementName = tmp3_1;
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT83);

          omc_Print_printBuf(threadData, omc_XMLDump_transformModelicaIdentifierToXMLElementTag(threadData, _ElementName));

          omc_Print_printBuf(threadData, _OMC_LIT105);
          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_XMLDump_dumpStrTagContent(threadData_t *threadData, modelica_string _inElementName, modelica_string _inContent)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_string tmp3_1;volatile modelica_string tmp3_2;
    tmp3_1 = _inElementName;
    tmp3_2 = _inContent;
    {
      modelica_string _inTagString = NULL;
      modelica_string _inTagContent = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _inTagString has no default value.
      // _inTagContent has no default value.
      tmp3 = 0;
      MMC_TRY_INTERNAL(mmc_jumper)
      tmp2_top:
      threadData->mmc_jumper = &new_mmc_jumper;
      for (; tmp3 < 3; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (0 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          if (0 != MMC_STRLEN(tmp3_2) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_2)) != 0) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 2: {
          
          _inTagString = tmp3_1;
          _inTagContent = tmp3_2;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTag(threadData, _inTagString);

          omc_Print_printBuf(threadData, _OMC_LIT27);

          omc_Print_printBuf(threadData, _inTagContent);

          omc_XMLDump_dumpStrCloseTag(threadData, _inTagString);
          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 < 3) {
        goto tmp2_top;
      }
      MMC_THROW_INTERNAL();
      tmp2_done2:;
    }
  }
  ;
  _return: OMC_LABEL_UNUSED
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpStrTagAttrNoChild(threadData_t *threadData, modelica_string _inContent, modelica_string _Attribute, modelica_string _AttributeContent)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_string tmp3_1;volatile modelica_string tmp3_2;volatile modelica_string tmp3_3;
    tmp3_1 = _inContent;
    tmp3_2 = _Attribute;
    tmp3_3 = _AttributeContent;
    {
      modelica_string _inString = NULL;
      modelica_string _inAttributeContent = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _inString has no default value.
      // _inAttributeContent has no default value.
      tmp3 = 0;
      MMC_TRY_INTERNAL(mmc_jumper)
      tmp2_top:
      threadData->mmc_jumper = &new_mmc_jumper;
      for (; tmp3 < 6; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (0 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
          
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT0);
          goto tmp2_done;
        }
        case 1: {
          if (0 != MMC_STRLEN(tmp3_2) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_2)) != 0) goto tmp2_end;
          
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT0);
          goto tmp2_done;
        }
        case 2: {
          if (0 != MMC_STRLEN(tmp3_3) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_3)) != 0) goto tmp2_end;
          
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT0);
          goto tmp2_done;
        }
        case 3: {
          if (0 != MMC_STRLEN(tmp3_2) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_2)) != 0) goto tmp2_end;
          
          _inString = tmp3_1;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTag(threadData, omc_XMLDump_transformModelicaIdentifierToXMLElementTag(threadData, _inString));
          goto tmp2_done;
        }
        case 4: {
          if (0 != MMC_STRLEN(tmp3_3) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_3)) != 0) goto tmp2_end;
          
          _inString = tmp3_1;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTag(threadData, omc_XMLDump_transformModelicaIdentifierToXMLElementTag(threadData, _inString));
          goto tmp2_done;
        }
        case 5: {
          
          _inString = tmp3_1;
          _inAttributeContent = tmp3_3;
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT83);

          omc_Print_printBuf(threadData, omc_XMLDump_transformModelicaIdentifierToXMLElementTag(threadData, _inString));

          omc_Print_printBuf(threadData, _OMC_LIT84);

          omc_Print_printBuf(threadData, _Attribute);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _inAttributeContent);

          omc_Print_printBuf(threadData, _OMC_LIT106);
          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 < 6) {
        goto tmp2_top;
      }
      MMC_THROW_INTERNAL();
      tmp2_done2:;
    }
  }
  ;
  _return: OMC_LABEL_UNUSED
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpStrOpenTagAttr(threadData_t *threadData, modelica_string _inContent, modelica_string _Attribute, modelica_string _AttributeContent)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_string tmp3_1;volatile modelica_string tmp3_2;volatile modelica_string tmp3_3;
    tmp3_1 = _inContent;
    tmp3_2 = _Attribute;
    tmp3_3 = _AttributeContent;
    {
      modelica_string _inString = NULL;
      modelica_string _inAttributeContent = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _inString has no default value.
      // _inAttributeContent has no default value.
      tmp3 = 0;
      MMC_TRY_INTERNAL(mmc_jumper)
      tmp2_top:
      threadData->mmc_jumper = &new_mmc_jumper;
      for (; tmp3 < 6; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (0 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
          
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT0);
          goto tmp2_done;
        }
        case 1: {
          if (0 != MMC_STRLEN(tmp3_2) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_2)) != 0) goto tmp2_end;
          
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT0);
          goto tmp2_done;
        }
        case 2: {
          if (0 != MMC_STRLEN(tmp3_3) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_3)) != 0) goto tmp2_end;
          
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT0);
          goto tmp2_done;
        }
        case 3: {
          if (0 != MMC_STRLEN(tmp3_2) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_2)) != 0) goto tmp2_end;
          
          _inString = tmp3_1;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTag(threadData, omc_XMLDump_transformModelicaIdentifierToXMLElementTag(threadData, _inString));
          goto tmp2_done;
        }
        case 4: {
          if (0 != MMC_STRLEN(tmp3_3) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_3)) != 0) goto tmp2_end;
          
          _inString = tmp3_1;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTag(threadData, omc_XMLDump_transformModelicaIdentifierToXMLElementTag(threadData, _inString));
          goto tmp2_done;
        }
        case 5: {
          
          _inString = tmp3_1;
          _inAttributeContent = tmp3_3;
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT83);

          omc_Print_printBuf(threadData, omc_XMLDump_transformModelicaIdentifierToXMLElementTag(threadData, _inString));

          omc_Print_printBuf(threadData, _OMC_LIT84);

          omc_Print_printBuf(threadData, _Attribute);

          omc_Print_printBuf(threadData, _OMC_LIT81);

          omc_Print_printBuf(threadData, _inAttributeContent);

          omc_Print_printBuf(threadData, _OMC_LIT92);
          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 < 6) {
        goto tmp2_top;
      }
      MMC_THROW_INTERNAL();
      tmp2_done2:;
    }
  }
  ;
  _return: OMC_LABEL_UNUSED
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpStrOpenTag(threadData_t *threadData, modelica_string _inContent)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_string tmp3_1;
    tmp3_1 = _inContent;
    {
      modelica_string _inString = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _inString has no default value.
      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: {
          if (0 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT0);
          goto tmp2_done;
        }
        case 1: {
          
          _inString = tmp3_1;
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT83);

          omc_Print_printBuf(threadData, omc_XMLDump_transformModelicaIdentifierToXMLElementTag(threadData, _inString));

          omc_Print_printBuf(threadData, _OMC_LIT107);
          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_XMLDump_dumpStrMathMLVariable(threadData_t *threadData, modelica_string _inVariable)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT108);

  omc_Print_printBuf(threadData, _inVariable);

  omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT108);
  _return: OMC_LABEL_UNUSED
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpStrMathMLNumberAttr(threadData_t *threadData, modelica_string _inNumber, modelica_string _inAttribute, modelica_string _inAttributeContent)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT109, _inAttribute, _inAttributeContent);

  omc_Print_printBuf(threadData, _inNumber);

  omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT109);
  _return: OMC_LABEL_UNUSED
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpStrMathMLNumber(threadData_t *threadData, modelica_string _inNumber)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT109);

  omc_Print_printBuf(threadData, _inNumber);

  omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT109);
  _return: OMC_LABEL_UNUSED
  return;
}

PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_dumpStreamStr(threadData_t *threadData, modelica_metatype _inVarStream)
{
  modelica_string _outString = NULL;
  modelica_string tmp1 = 0;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outString has no default value.
  { /* match expression */
    modelica_metatype tmp4_1;
    tmp4_1 = _inVarStream;
    {
      int tmp4;
      {
        switch (MMC_SWITCH_CAST(valueConstructor(tmp4_1))) {
        case 5: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT110;
          goto tmp3_done;
        }
        case 3: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT111;
          goto tmp3_done;
        }
        case 4: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT111;
          goto tmp3_done;
        }
        case 6: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT112;
          goto tmp3_done;
        }
        }
        goto tmp3_end;
        tmp3_end: ;
      }
      goto goto_2;
      goto_2:;
      MMC_THROW_INTERNAL();
      goto tmp3_done;
      tmp3_done:;
    }
  }
  _outString = tmp1;
  _return: OMC_LABEL_UNUSED
  return _outString;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpStrCloseTag(threadData_t *threadData, modelica_string _inContent)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_string tmp3_1;
    tmp3_1 = _inContent;
    {
      modelica_string _inString = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _inString has no default value.
      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: {
          if (0 != MMC_STRLEN(tmp3_1) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_1)) != 0) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          
          _inString = tmp3_1;
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT113);

          omc_Print_printBuf(threadData, omc_XMLDump_transformModelicaIdentifierToXMLElementTag(threadData, _inString));

          omc_Print_printBuf(threadData, _OMC_LIT107);
          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_string omc_XMLDump_transformModelicaIdentifierToXMLElementTag(threadData_t *threadData, modelica_string _modelicaIdentifier)
{
  modelica_string _xmlElementTag = NULL;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _xmlElementTag has no default value.
  _xmlElementTag = omc_System_stringReplace(threadData, _modelicaIdentifier, _OMC_LIT114, _OMC_LIT115);
  _return: OMC_LABEL_UNUSED
  return _xmlElementTag;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpSolvingInfo(threadData_t *threadData, modelica_boolean _addOriginalAdjacencyMatrix, modelica_boolean _addSolvingInfo, modelica_metatype _inBackendDAE)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_boolean tmp3_1;modelica_boolean tmp3_2;
    tmp3_1 = _addOriginalAdjacencyMatrix;
    tmp3_2 = _addSolvingInfo;
    {
      modelica_metatype _dlow = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _dlow has no default value.
      tmp3 = 0;
      for (; tmp3 < 4; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (0 /* false */ != tmp3_1) goto tmp2_end;
          if (0 /* false */ != tmp3_2) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          if (1 /* true */ != tmp3_1) goto tmp2_end;
          if (1 /* true */ != tmp3_2) goto tmp2_end;
          /* Pattern matching succeeded */
          _dlow = omc_BackendDAEUtil_transformBackendDAE(threadData, _inBackendDAE, mmc_mk_none(), mmc_mk_none(), mmc_mk_none());

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT76);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT116);

          omc_XMLDump_dumpAdjacencyMatrix(threadData, _dlow);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT116);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT117);

          omc_XMLDump_dumpMatching(threadData, _dlow);

          omc_XMLDump_dumpComponents(threadData, _dlow);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT117);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT76);
          goto tmp2_done;
        }
        case 2: {
          if (1 /* true */ != tmp3_1) goto tmp2_end;
          if (0 /* false */ != tmp3_2) goto tmp2_end;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT76);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT116);

          omc_XMLDump_dumpAdjacencyMatrix(threadData, _inBackendDAE);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT116);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT76);
          goto tmp2_done;
        }
        case 3: {
          if (0 /* false */ != tmp3_1) goto tmp2_end;
          if (1 /* true */ != tmp3_2) goto tmp2_end;
          /* Pattern matching succeeded */
          _dlow = omc_BackendDAEUtil_transformBackendDAE(threadData, _inBackendDAE, mmc_mk_none(), mmc_mk_none(), mmc_mk_none());

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT76);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT117);

          omc_XMLDump_dumpMatching(threadData, _dlow);

          omc_XMLDump_dumpComponents(threadData, _dlow);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT117);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT76);
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpSolvingInfo(threadData_t *threadData, modelica_metatype _addOriginalAdjacencyMatrix, modelica_metatype _addSolvingInfo, modelica_metatype _inBackendDAE)
{
  modelica_integer tmp1;
  modelica_integer tmp2;
  tmp1 = mmc_unbox_integer(_addOriginalAdjacencyMatrix);
  tmp2 = mmc_unbox_integer(_addSolvingInfo);
  omc_XMLDump_dumpSolvingInfo(threadData, tmp1, tmp2, _inBackendDAE);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpRow(threadData_t *threadData, modelica_metatype _es_1)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  omc_XMLDump_dumpList(threadData, _es_1, boxvar_XMLDump_dumpExp2);
  _return: OMC_LABEL_UNUSED
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpOptionDAEStateSelect(threadData_t *threadData, modelica_metatype _ss, modelica_string _Content)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _ss;
    {
      volatile mmc_switch_type tmp3;
      int tmp4;
      tmp3 = 0;
      for (; tmp3 < 6; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!optionNone(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          omc_Print_printBuf(threadData, _OMC_LIT0);
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta5,0,0) == 0) goto tmp2_end;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrTagContent(threadData, _Content, _OMC_LIT118);
          goto tmp2_done;
        }
        case 2: {
          modelica_metatype tmpMeta6;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,1,0) == 0) goto tmp2_end;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrTagContent(threadData, _Content, _OMC_LIT119);
          goto tmp2_done;
        }
        case 3: {
          modelica_metatype tmpMeta7;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,2,0) == 0) goto tmp2_end;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrTagContent(threadData, _Content, _OMC_LIT120);
          goto tmp2_done;
        }
        case 4: {
          modelica_metatype tmpMeta8;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta8,3,0) == 0) goto tmp2_end;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrTagContent(threadData, _Content, _OMC_LIT121);
          goto tmp2_done;
        }
        case 5: {
          modelica_metatype tmpMeta9;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta9,4,0) == 0) goto tmp2_end;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrTagContent(threadData, _Content, _OMC_LIT122);
          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;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpOptInteger(threadData_t *threadData, modelica_metatype _inOption, modelica_string _Content, modelica_boolean _addMathMLCode)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _inOption;
    {
      modelica_integer _i;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _i has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!optionNone(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_integer tmp6;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          tmp6 = mmc_unbox_integer(tmpMeta5);
          _i = tmp6  /* pattern as ty=Integer */;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTagAttr(threadData, _Content, _OMC_LIT53, intString(_i));

          omc_XMLDump_dumpStrCloseTag(threadData, _Content);
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpOptInteger(threadData_t *threadData, modelica_metatype _inOption, modelica_metatype _Content, modelica_metatype _addMathMLCode)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_addMathMLCode);
  omc_XMLDump_dumpOptInteger(threadData, _inOption, _Content, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpOptExp(threadData_t *threadData, modelica_metatype _inExpExpOption, modelica_string _Content, modelica_boolean _addMathMLCode)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _inExpExpOption;
    {
      modelica_metatype _e = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _e has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!optionNone(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          _e = tmpMeta5;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTagAttr(threadData, _Content, _OMC_LIT19, omc_XMLDump_printExpStr(threadData, _e));

          omc_XMLDump_dumpExp(threadData, _e, _addMathMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _Content);
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpOptExp(threadData_t *threadData, modelica_metatype _inExpExpOption, modelica_metatype _Content, modelica_metatype _addMathMLCode)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_addMathMLCode);
  omc_XMLDump_dumpOptExp(threadData, _inExpExpOption, _Content, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC modelica_metatype omc_XMLDump_dumpMatching2(threadData_t *threadData, modelica_integer _eqn, modelica_metatype _inTpl)
{
  modelica_metatype _outTpl = NULL;
  modelica_integer _v;
  modelica_integer _voffset;
  modelica_integer _eoffset;
  modelica_string _s = NULL;
  modelica_string _s2 = NULL;
  modelica_metatype tmpMeta1;
  modelica_metatype tmpMeta2;
  modelica_integer tmp3;
  modelica_metatype tmpMeta4;
  modelica_integer tmp5;
  modelica_metatype tmpMeta6;
  modelica_integer tmp7;
  modelica_metatype tmpMeta8;
  modelica_metatype tmpMeta9;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outTpl has no default value.
  // _v has no default value.
  // _voffset has no default value.
  // _eoffset has no default value.
  // _s has no default value.
  // _s2 has no default value.
  /* Pattern-matching assignment */
  tmpMeta1 = _inTpl;
  tmpMeta2 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 1));
  tmp3 = mmc_unbox_integer(tmpMeta2);
  tmpMeta4 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 2));
  tmp5 = mmc_unbox_integer(tmpMeta4);
  tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 3));
  tmp7 = mmc_unbox_integer(tmpMeta6);
  _v = tmp3  /* pattern as ty=Integer */;
  _voffset = tmp5  /* pattern as ty=Integer */;
  _eoffset = tmp7  /* pattern as ty=Integer */;

  _s = intString(_v + _voffset);

  _s2 = intString(_eqn + _eoffset);

  tmpMeta8 = mmc_mk_cons(_OMC_LIT123, mmc_mk_cons(_s, mmc_mk_cons(_OMC_LIT124, mmc_mk_cons(_s2, mmc_mk_cons(_OMC_LIT106, MMC_REFSTRUCTLIT(mmc_nil))))));
  omc_Print_printBuf(threadData, stringAppendList(tmpMeta8));

  tmpMeta9 = mmc_mk_box3(0, mmc_mk_integer(((modelica_integer) 1) + _v), mmc_mk_integer(_voffset), mmc_mk_integer(_eoffset));
  _outTpl = tmpMeta9;
  _return: OMC_LABEL_UNUSED
  return _outTpl;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_XMLDump_dumpMatching2(threadData_t *threadData, modelica_metatype _eqn, modelica_metatype _inTpl)
{
  modelica_integer tmp1;
  modelica_metatype _outTpl = NULL;
  tmp1 = mmc_unbox_integer(_eqn);
  _outTpl = omc_XMLDump_dumpMatching2(threadData, tmp1, _inTpl);
  /* skip box _outTpl; tuple<#Integer, #Integer, #Integer> */
  return _outTpl;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpMatching1(threadData_t *threadData, modelica_metatype _v, modelica_integer _voffset, modelica_integer _eoffset)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    {
      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;
          /* Pattern matching succeeded */
          /* Pattern-matching assignment */
          tmp5 = (arrayLength(_v) > ((modelica_integer) 0));
          if (0 /* false */ != tmp5) goto goto_1;
          goto tmp2_done;
        }
        case 1: {
          modelica_boolean tmp6;
          modelica_metatype tmpMeta7;
          /* Pattern matching succeeded */
          /* Pattern-matching assignment */
          tmp6 = (arrayLength(_v) > ((modelica_integer) 0));
          if (1 /* true */ != tmp6) goto goto_1;

          tmpMeta7 = mmc_mk_box3(0, mmc_mk_integer(((modelica_integer) 1)), mmc_mk_integer(_voffset), mmc_mk_integer(_eoffset));
          omc_Array_fold(threadData, _v, boxvar_XMLDump_dumpMatching2, tmpMeta7);
          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 boxptr_XMLDump_dumpMatching1(threadData_t *threadData, modelica_metatype _v, modelica_metatype _voffset, modelica_metatype _eoffset)
{
  modelica_integer tmp1;
  modelica_integer tmp2;
  tmp1 = mmc_unbox_integer(_voffset);
  tmp2 = mmc_unbox_integer(_eoffset);
  omc_XMLDump_dumpMatching1(threadData, _v, tmp1, tmp2);
  return;
}

PROTECTED_FUNCTION_STATIC modelica_metatype omc_XMLDump_dumpMatchingWork(threadData_t *threadData, modelica_metatype _syst, modelica_metatype _shared, modelica_metatype _inOffset)
{
  modelica_metatype _outOffset = NULL;
  modelica_metatype _v1 = NULL;
  modelica_metatype _v2 = NULL;
  modelica_integer _voffset;
  modelica_integer _eoffset;
  modelica_metatype tmpMeta1;
  modelica_metatype tmpMeta2;
  modelica_metatype tmpMeta3;
  modelica_metatype tmpMeta4;
  modelica_metatype tmpMeta5;
  modelica_metatype tmpMeta6;
  modelica_integer tmp7;
  modelica_metatype tmpMeta8;
  modelica_integer tmp9;
  modelica_metatype tmpMeta10;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outOffset has no default value.
  // _v1 has no default value.
  // _v2 has no default value.
  // _voffset has no default value.
  // _eoffset has no default value.
  /* Pattern-matching assignment */
  tmpMeta1 = _syst;
  tmpMeta2 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 7));
  if (mmc__uniontype__metarecord__typedef__equal(tmpMeta2,1,3) == 0) MMC_THROW_INTERNAL();
  tmpMeta3 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta2), 2));
  tmpMeta4 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta2), 3));
  _v1 = tmpMeta3;
  _v2 = tmpMeta4;

  /* Pattern-matching assignment */
  tmpMeta5 = _inOffset;
  tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 1));
  tmp7 = mmc_unbox_integer(tmpMeta6);
  tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 2));
  tmp9 = mmc_unbox_integer(tmpMeta8);
  _voffset = tmp7  /* pattern as ty=Integer */;
  _eoffset = tmp9  /* pattern as ty=Integer */;

  omc_XMLDump_dumpMatching1(threadData, _v1, _voffset, _eoffset);

  tmpMeta10 = mmc_mk_box2(0, mmc_mk_integer(_voffset + arrayLength(_v1)), mmc_mk_integer(_eoffset + arrayLength(_v2)));
  _outOffset = tmpMeta10;
  _return: OMC_LABEL_UNUSED
  return _outOffset;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpMatching(threadData_t *threadData, modelica_metatype _dae)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT125);

  omc_BackendDAEUtil_foldEqSystem(threadData, _dae, boxvar_XMLDump_dumpMatchingWork, _OMC_LIT126);

  omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT125);
  _return: OMC_LABEL_UNUSED
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpLstIntAttr(threadData_t *threadData, modelica_metatype _lst, modelica_string _inContent, modelica_string _inElementContent)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_metatype tmp3_1;volatile modelica_string tmp3_2;volatile modelica_string tmp3_3;
    tmp3_1 = _lst;
    tmp3_2 = _inContent;
    tmp3_3 = _inElementContent;
    {
      modelica_metatype _l = NULL;
      modelica_string _inLst = NULL;
      modelica_string _inEl = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _l has no default value.
      // _inLst has no default value.
      // _inEl has no default value.
      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: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          
          _l = tmp3_1;
          _inLst = tmp3_2;
          _inEl = tmp3_3;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTag(threadData, _inLst);

          omc_XMLDump_dumpLstInt(threadData, _l, _inEl);

          omc_XMLDump_dumpStrCloseTag(threadData, _inLst);
          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_XMLDump_dumpLstInt(threadData_t *threadData, modelica_metatype _inLstStr, modelica_string _inElementName)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_metatype tmp3_1;volatile modelica_string tmp3_2;
    tmp3_1 = _inLstStr;
    tmp3_2 = _inElementName;
    {
      modelica_integer _h;
      modelica_metatype _t = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _h has no default value.
      // _t has no default value.
      tmp3 = 0;
      MMC_TRY_INTERNAL(mmc_jumper)
      tmp2_top:
      threadData->mmc_jumper = &new_mmc_jumper;
      for (; tmp3 < 4; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          
          tmp3 += 3; /* Pattern matching succeeded; we may skip some cases if we fail */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          if (0 != MMC_STRLEN(tmp3_2) || strcmp(MMC_STRINGDATA(_OMC_LIT0), MMC_STRINGDATA(tmp3_2)) != 0) goto tmp2_end;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          if (!listEmpty(tmpMeta6)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 2: {
          modelica_metatype tmpMeta7;
          modelica_metatype tmpMeta8;
          modelica_integer tmp9;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta7 = MMC_CAR(tmp3_1);
          tmpMeta8 = MMC_CDR(tmp3_1);
          tmp9 = mmc_unbox_integer(tmpMeta7);
          if (!listEmpty(tmpMeta8)) goto tmp2_end;
          
          _h = tmp9  /* pattern as ty=Integer */;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrTagContent(threadData, _inElementName, intString(_h));
          goto tmp2_done;
        }
        case 3: {
          modelica_metatype tmpMeta10;
          modelica_metatype tmpMeta11;
          modelica_integer tmp12;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta10 = MMC_CAR(tmp3_1);
          tmpMeta11 = MMC_CDR(tmp3_1);
          tmp12 = mmc_unbox_integer(tmpMeta10);
          
          _h = tmp12  /* pattern as ty=Integer */;
          _t = tmpMeta11;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrTagContent(threadData, _inElementName, intString(_h));

          omc_XMLDump_dumpLstInt(threadData, _t, _inElementName);
          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 < 4) {
        goto tmp2_top;
      }
      MMC_THROW_INTERNAL();
      tmp2_done2:;
    }
  }
  ;
  _return: OMC_LABEL_UNUSED
  return;
}

PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_printExpStr(threadData_t *threadData, modelica_metatype _e)
{
  modelica_string _s = NULL;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _s has no default value.
  _s = omc_Util_xmlEscape(threadData, omc_ExpressionDump_printExpStr(threadData, _e));
  _return: OMC_LABEL_UNUSED
  return _s;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpListSeparator(threadData_t *threadData, modelica_metatype _inTypeALst, modelica_fnptr _inFuncTypeTypeATo, modelica_string _inString)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_metatype tmp3_1;volatile modelica_fnptr tmp3_2;volatile modelica_string tmp3_3;
    tmp3_1 = _inTypeALst;
    tmp3_2 = ((modelica_fnptr) _inFuncTypeTypeATo);
    tmp3_3 = _inString;
    {
      modelica_metatype _h = NULL;
      modelica_fnptr _r;
      modelica_metatype _t = NULL;
      modelica_string _sep = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _h has no default value.
      // _t has no default value.
      // _sep has no default value.
      tmp3 = 0;
      MMC_TRY_INTERNAL(mmc_jumper)
      tmp2_top:
      threadData->mmc_jumper = &new_mmc_jumper;
      for (; tmp3 < 3; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          
          tmp3 += 2; /* Pattern matching succeeded; we may skip some cases if we fail */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          if (!listEmpty(tmpMeta6)) goto tmp2_end;
          
          _h = tmpMeta5;
          _r = tmp3_2;
          /* Pattern matching succeeded */
          (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_r), 2))) ? ((void(*)(threadData_t*, modelica_metatype, modelica_metatype)) (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_r), 1)))) (threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_r), 2))), _h) : ((void(*)(threadData_t*, modelica_metatype)) (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_r), 1)))) (threadData, _h);
          goto tmp2_done;
        }
        case 2: {
          modelica_metatype tmpMeta7;
          modelica_metatype tmpMeta8;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta7 = MMC_CAR(tmp3_1);
          tmpMeta8 = MMC_CDR(tmp3_1);
          
          _h = tmpMeta7;
          _t = tmpMeta8;
          _r = tmp3_2;
          _sep = tmp3_3;
          /* Pattern matching succeeded */
          (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_r), 2))) ? ((void(*)(threadData_t*, modelica_metatype, modelica_metatype)) (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_r), 1)))) (threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_r), 2))), _h) : ((void(*)(threadData_t*, modelica_metatype)) (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_r), 1)))) (threadData, _h);

          omc_Print_printBuf(threadData, _sep);

          omc_XMLDump_dumpListSeparator(threadData, _t, ((modelica_fnptr) _r), _sep);
          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 < 3) {
        goto tmp2_top;
      }
      MMC_THROW_INTERNAL();
      tmp2_done2:;
    }
  }
  ;
  _return: OMC_LABEL_UNUSED
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpList(threadData_t *threadData, modelica_metatype _inTypeALst, modelica_fnptr _inFuncTypeTypeATo)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_metatype tmp3_1;volatile modelica_fnptr tmp3_2;
    tmp3_1 = _inTypeALst;
    tmp3_2 = ((modelica_fnptr) _inFuncTypeTypeATo);
    {
      modelica_metatype _h = NULL;
      modelica_fnptr _r;
      modelica_metatype _t = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _h has no default value.
      // _t has no default value.
      tmp3 = 0;
      MMC_TRY_INTERNAL(mmc_jumper)
      tmp2_top:
      threadData->mmc_jumper = &new_mmc_jumper;
      for (; tmp3 < 3; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          
          tmp3 += 2; /* Pattern matching succeeded; we may skip some cases if we fail */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          if (!listEmpty(tmpMeta6)) goto tmp2_end;
          
          _h = tmpMeta5;
          _r = tmp3_2;
          /* Pattern matching succeeded */
          (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_r), 2))) ? ((void(*)(threadData_t*, modelica_metatype, modelica_metatype)) (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_r), 1)))) (threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_r), 2))), _h) : ((void(*)(threadData_t*, modelica_metatype)) (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_r), 1)))) (threadData, _h);
          goto tmp2_done;
        }
        case 2: {
          modelica_metatype tmpMeta7;
          modelica_metatype tmpMeta8;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta7 = MMC_CAR(tmp3_1);
          tmpMeta8 = MMC_CDR(tmp3_1);
          
          _h = tmpMeta7;
          _t = tmpMeta8;
          _r = tmp3_2;
          /* Pattern matching succeeded */
          (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_r), 2))) ? ((void(*)(threadData_t*, modelica_metatype, modelica_metatype)) (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_r), 1)))) (threadData, (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_r), 2))), _h) : ((void(*)(threadData_t*, modelica_metatype)) (MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(_r), 1)))) (threadData, _h);

          omc_XMLDump_dumpList(threadData, _t, ((modelica_fnptr) _r));
          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 < 3) {
        goto tmp2_top;
      }
      MMC_THROW_INTERNAL();
      tmp2_done2:;
    }
  }
  ;
  _return: OMC_LABEL_UNUSED
  return;
}

PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_dumpKind(threadData_t *threadData, modelica_metatype _inVarKind)
{
  modelica_string _outString = NULL;
  modelica_string tmp1 = 0;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outString has no default value.
  { /* match expression */
    modelica_metatype tmp4_1;
    tmp4_1 = _inVarKind;
    {
      modelica_metatype _path = NULL;
      modelica_string _error_msg = NULL;
      int tmp4;
      // _path has no default value.
      // _error_msg has no default value.
      {
        switch (MMC_SWITCH_CAST(valueConstructor(tmp4_1))) {
        case 3: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT127;
          goto tmp3_done;
        }
        case 4: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT128;
          goto tmp3_done;
        }
        case 6: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT129;
          goto tmp3_done;
        }
        case 7: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT130;
          goto tmp3_done;
        }
        case 9: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT131;
          goto tmp3_done;
        }
        case 10: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT132;
          goto tmp3_done;
        }
        case 11: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT133;
          goto tmp3_done;
        }
        case 12: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          if (mmc__uniontype__metarecord__typedef__equal(tmp4_1,9,1) == 0) goto tmp3_end;
          tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp4_1), 2));
          _path = tmpMeta5;
          /* Pattern matching succeeded */
          tmpMeta6 = stringAppend(_OMC_LIT104,omc_AbsynUtil_pathStringNoQual(threadData, _path, _OMC_LIT135, 0 /* false */, 0 /* false */));
          tmpMeta7 = stringAppend(_OMC_LIT134,tmpMeta6);
          tmp1 = tmpMeta7;
          goto tmp3_done;
        }
        default:
        tmp3_default: OMC_LABEL_UNUSED; {
          modelica_metatype tmpMeta8;
          
          /* Pattern matching succeeded */
          _error_msg = _OMC_LIT136;

          tmpMeta8 = mmc_mk_cons(_error_msg, MMC_REFSTRUCTLIT(mmc_nil));
          omc_Error_addMessage(threadData, _OMC_LIT42, tmpMeta8);
          goto goto_2;
          goto tmp3_done;
        }
        }
        goto tmp3_end;
        tmp3_end: ;
      }
      goto goto_2;
      goto_2:;
      MMC_THROW_INTERNAL();
      goto tmp3_done;
      tmp3_done:;
    }
  }
  _outString = tmp1;
  _return: OMC_LABEL_UNUSED
  return _outString;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpMatrixIntegerRow(threadData_t *threadData, modelica_integer _x, modelica_integer _offset)
{
  modelica_integer _e;
  modelica_string _s = NULL;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _e has no default value.
  // _s has no default value.
  _e = ((_x > ((modelica_integer) 0))?_x + _offset:_x - _offset);

  _s = intString(_e);

  omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT108);

  omc_Print_printBuf(threadData, _s);

  omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT108);
  _return: OMC_LABEL_UNUSED
  return;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpMatrixIntegerRow(threadData_t *threadData, modelica_metatype _x, modelica_metatype _offset)
{
  modelica_integer tmp1;
  modelica_integer tmp2;
  tmp1 = mmc_unbox_integer(_x);
  tmp2 = mmc_unbox_integer(_offset);
  omc_XMLDump_dumpMatrixIntegerRow(threadData, tmp1, tmp2);
  return;
}

PROTECTED_FUNCTION_STATIC modelica_metatype omc_XMLDump_dumpAdjacencyMatrix2(threadData_t *threadData, modelica_metatype _row, modelica_metatype _inTpl)
{
  modelica_metatype _outTpl = NULL;
  modelica_integer _offset;
  modelica_integer _c;
  modelica_metatype tmpMeta1;
  modelica_metatype tmpMeta2;
  modelica_integer tmp3;
  modelica_metatype tmpMeta4;
  modelica_integer tmp5;
  modelica_metatype tmpMeta6;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outTpl has no default value.
  // _offset has no default value.
  // _c has no default value.
  /* Pattern-matching assignment */
  tmpMeta1 = _inTpl;
  tmpMeta2 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 1));
  tmp3 = mmc_unbox_integer(tmpMeta2);
  tmpMeta4 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 2));
  tmp5 = mmc_unbox_integer(tmpMeta4);
  _offset = tmp3  /* pattern as ty=Integer */;
  _c = tmp5  /* pattern as ty=Integer */;

  omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT137, _OMC_LIT5, intString(_c));

  omc_List_map1__0(threadData, _row, boxvar_XMLDump_dumpMatrixIntegerRow, mmc_mk_integer(_offset));

  omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT137);

  tmpMeta6 = mmc_mk_box2(0, mmc_mk_integer(_offset), mmc_mk_integer(((modelica_integer) 1) + _c));
  _outTpl = tmpMeta6;
  _return: OMC_LABEL_UNUSED
  return _outTpl;
}

PROTECTED_FUNCTION_STATIC modelica_integer omc_XMLDump_dumpAdjacencyMatrixWork(threadData_t *threadData, modelica_metatype _syst, modelica_metatype _shared, modelica_integer _inOffset)
{
  modelica_integer _outOffset;
  modelica_metatype _m = NULL;
  modelica_metatype _funcs = NULL;
  modelica_metatype tmpMeta1;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outOffset has no default value.
  // _m has no default value.
  // _funcs has no default value.
  _funcs = omc_BackendDAEUtil_getFunctions(threadData, _shared);

  omc_BackendDAEUtil_getAdjacencyMatrixfromOption(threadData, _syst, _OMC_LIT138, mmc_mk_some(_funcs), omc_BackendDAEUtil_isInitializationDAE(threadData, _shared) ,&_m ,NULL);

  tmpMeta1 = mmc_mk_box2(0, mmc_mk_integer(_inOffset), mmc_mk_integer(((modelica_integer) 1)));
  omc_Array_fold(threadData, _m, boxvar_XMLDump_dumpAdjacencyMatrix2, tmpMeta1);

  _outOffset = _inOffset + arrayLength(_m);
  _return: OMC_LABEL_UNUSED
  return _outOffset;
}
PROTECTED_FUNCTION_STATIC modelica_metatype boxptr_XMLDump_dumpAdjacencyMatrixWork(threadData_t *threadData, modelica_metatype _syst, modelica_metatype _shared, modelica_metatype _inOffset)
{
  modelica_integer tmp1;
  modelica_integer _outOffset;
  modelica_metatype out_outOffset;
  tmp1 = mmc_unbox_integer(_inOffset);
  _outOffset = omc_XMLDump_dumpAdjacencyMatrixWork(threadData, _syst, _shared, tmp1);
  out_outOffset = mmc_mk_icon(_outOffset);
  return out_outOffset;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpAdjacencyMatrix(threadData_t *threadData, modelica_metatype _dae)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT6);

  omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT7, _OMC_LIT8, _OMC_LIT9);

  omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT139);

  omc_BackendDAEUtil_foldEqSystem(threadData, _dae, boxvar_XMLDump_dumpAdjacencyMatrixWork, mmc_mk_integer(((modelica_integer) 0)));

  omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT139);

  omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT7);

  omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT6);
  _return: OMC_LABEL_UNUSED
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpFunctions3(threadData_t *threadData, modelica_metatype _fun)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_metatype tmp3_1;
    tmp3_1 = _fun;
    {
      volatile mmc_switch_type tmp3;
      int tmp4;
      tmp3 = 0;
      MMC_TRY_INTERNAL(mmc_jumper)
      tmp2_top:
      threadData->mmc_jumper = &new_mmc_jumper;
      for (; tmp3 < 3; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,0,10) == 0) goto tmp2_end;
          tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta5,11,4) == 0) goto tmp2_end;
          tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 4));
          tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 6));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta7,1,2) == 0) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT140, _OMC_LIT85, omc_Util_xmlEscape(threadData, omc_AbsynUtil_pathStringNoQual(threadData, omc_DAEUtil_functionName(threadData, _fun), _OMC_LIT135, 0 /* false */, 0 /* false */)));

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT141);

          omc_Print_printBuf(threadData, omc_Util_xmlEscape(threadData, omc_DAEDump_dumpFunctionStr(threadData, _fun)));

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT141);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT140);
          goto tmp2_done;
        }
        case 2: {
          
          /* Pattern matching succeeded */
          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 < 3) {
        goto tmp2_top;
      }
      MMC_THROW_INTERNAL();
      tmp2_done2:;
    }
  }
  ;
  _return: OMC_LABEL_UNUSED
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpFunctions2(threadData_t *threadData, modelica_metatype _funcelems)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _funcelems;
    {
      modelica_metatype _fun = NULL;
      modelica_metatype _rem_fun = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _fun has no default value.
      // _rem_fun has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          _fun = tmpMeta5;
          _rem_fun = tmpMeta6;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpFunctions3(threadData, _fun);

          /* Tail recursive call */
          _funcelems = _rem_fun;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          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;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpFunctions(threadData_t *threadData, modelica_metatype _funcelems)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_metatype tmp3_1;
    tmp3_1 = _funcelems;
    {
      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: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT142);

          omc_XMLDump_dumpFunctions2(threadData, _funcelems);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT142);
          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_string omc_XMLDump_dumpFlowStr(threadData_t *threadData, modelica_metatype _inVarFlow)
{
  modelica_string _outString = NULL;
  modelica_string tmp1 = 0;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outString has no default value.
  { /* match expression */
    modelica_metatype tmp4_1;
    tmp4_1 = _inVarFlow;
    {
      int tmp4;
      {
        switch (MMC_SWITCH_CAST(valueConstructor(tmp4_1))) {
        case 4: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT143;
          goto tmp3_done;
        }
        case 3: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT144;
          goto tmp3_done;
        }
        case 5: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT144;
          goto tmp3_done;
        }
        case 6: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT145;
          goto tmp3_done;
        }
        }
        goto tmp3_end;
        tmp3_end: ;
      }
      goto goto_2;
      goto_2:;
      MMC_THROW_INTERNAL();
      goto tmp3_done;
      tmp3_done:;
    }
  }
  _outString = tmp1;
  _return: OMC_LABEL_UNUSED
  return _outString;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpExtObjCls2(threadData_t *threadData, modelica_metatype _cls, modelica_string _Content)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;modelica_string tmp3_2;
    tmp3_1 = _cls;
    tmp3_2 = _Content;
    {
      modelica_metatype _xs = NULL;
      modelica_metatype _path = NULL;
      modelica_string _c = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _xs has no default value.
      // _path has no default value.
      // _c has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 2));
          
          _path = tmpMeta7;
          _xs = tmpMeta6;
          _c = tmp3_2;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTag(threadData, _c);

          omc_Print_printBuf(threadData, _OMC_LIT146);

          omc_Print_printBuf(threadData, omc_AbsynUtil_pathStringNoQual(threadData, _path, _OMC_LIT135, 0 /* false */, 0 /* false */));

          omc_Print_printBuf(threadData, _OMC_LIT147);

          omc_Print_printBuf(threadData, _OMC_LIT148);

          omc_Print_printBuf(threadData, omc_AbsynUtil_pathStringNoQual(threadData, _path, _OMC_LIT135, 0 /* false */, 0 /* false */));

          omc_XMLDump_dumpStrCloseTag(threadData, _c);

          /* Tail recursive call */
          _cls = _xs;
          _Content = _c;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          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;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpExtObjCls(threadData_t *threadData, modelica_metatype _cls, modelica_string _Content)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _cls;
    {
      modelica_integer _len;
      modelica_metatype _xs = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _len has no default value.
      // _xs has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          
          _xs = tmp3_1;
          /* Pattern matching succeeded */
          _len = listLength(_xs);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT149, _OMC_LIT51, intString(_len));

          omc_XMLDump_dumpExtObjCls2(threadData, _xs, _OMC_LIT150);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT149);
          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;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpExp2(threadData_t *threadData, modelica_metatype _inExp)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_metatype tmp3_1;
    tmp3_1 = _inExp;
    {
      modelica_string _s = NULL;
      modelica_string _sym = NULL;
      modelica_string _res = NULL;
      modelica_string _str = NULL;
      modelica_string _fs = NULL;
      modelica_integer _x;
      modelica_integer _ival;
      modelica_real _rval;
      modelica_metatype _c = NULL;
      modelica_metatype _tp = NULL;
      modelica_metatype _e1 = NULL;
      modelica_metatype _e2 = NULL;
      modelica_metatype _e = NULL;
      modelica_metatype _start = NULL;
      modelica_metatype _stop = NULL;
      modelica_metatype _step = NULL;
      modelica_metatype _cond = NULL;
      modelica_metatype _tb = NULL;
      modelica_metatype _fb = NULL;
      modelica_metatype _op = NULL;
      modelica_metatype _fcn = NULL;
      modelica_metatype _args = NULL;
      modelica_metatype _es = NULL;
      modelica_metatype _ebs = NULL;
      modelica_metatype _subs = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _s has no default value.
      // _sym has no default value.
      // _res has no default value.
      // _str has no default value.
      // _fs has no default value.
      // _x has no default value.
      // _ival has no default value.
      // _rval has no default value.
      // _c has no default value.
      // _tp has no default value.
      // _e1 has no default value.
      // _e2 has no default value.
      // _e has no default value.
      // _start has no default value.
      // _stop has no default value.
      // _step has no default value.
      // _cond has no default value.
      // _tb has no default value.
      // _fb has no default value.
      // _op has no default value.
      // _fcn has no default value.
      // _args has no default value.
      // _es has no default value.
      // _ebs has no default value.
      // _subs has no default value.
      tmp3 = 0;
      MMC_TRY_INTERNAL(mmc_jumper)
      tmp2_top:
      threadData->mmc_jumper = &new_mmc_jumper;
      for (; tmp3 < 38; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          modelica_metatype tmpMeta5;
          modelica_integer tmp6;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,0,1) == 0) goto tmp2_end;
          tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmp6 = mmc_unbox_integer(tmpMeta5);
          _x = tmp6  /* pattern as ty=Integer */;
          tmp3 += 36; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrMathMLNumberAttr(threadData, intString(_x), _OMC_LIT88, _OMC_LIT151);
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta7;
          modelica_real tmp8;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,1) == 0) goto tmp2_end;
          tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmp8 = mmc_unbox_real(tmpMeta7);
          _rval = tmp8  /* pattern as ty=Real */;
          tmp3 += 35; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrMathMLNumberAttr(threadData, realString(_rval), _OMC_LIT88, _OMC_LIT152);
          goto tmp2_done;
        }
        case 2: {
          modelica_metatype tmpMeta9;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,2,1) == 0) goto tmp2_end;
          tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          _s = tmpMeta9;
          tmp3 += 34; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrMathMLNumberAttr(threadData, omc_Util_xmlEscape(threadData, _s), _OMC_LIT88, _OMC_LIT133);
          goto tmp2_done;
        }
        case 3: {
          modelica_metatype tmpMeta10;
          modelica_integer tmp11;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,3,1) == 0) goto tmp2_end;
          tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmp11 = mmc_unbox_integer(tmpMeta10);
          if (0 /* false */ != tmp11) goto tmp2_end;
          tmp3 += 33; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT70);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 4: {
          modelica_metatype tmpMeta12;
          modelica_integer tmp13;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,3,1) == 0) goto tmp2_end;
          tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmp13 = mmc_unbox_integer(tmpMeta12);
          if (1 /* true */ != tmp13) goto tmp2_end;
          tmp3 += 32; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT69);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 5: {
          modelica_metatype tmpMeta14;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,6,2) == 0) goto tmp2_end;
          tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          
          _c = tmpMeta14;
          tmp3 += 31; /* Pattern matching succeeded; we may skip some cases if we fail */
          _s = omc_ComponentReference_printComponentRefStr(threadData, _c);

          omc_XMLDump_dumpStrMathMLVariable(threadData, _s);
          goto tmp2_done;
        }
        case 6: {
          modelica_metatype tmpMeta15;
          modelica_metatype tmpMeta16;
          modelica_metatype tmpMeta17;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,7,3) == 0) goto tmp2_end;
          tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          _e1 = tmpMeta15;
          _op = tmpMeta16;
          _e2 = tmpMeta17;
          tmp3 += 30; /* Pattern matching succeeded; we may skip some cases if we fail */
          _sym = omc_XMLDump_binopSymbol(threadData, _op);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _sym);

          omc_XMLDump_dumpExp2(threadData, _e1);

          omc_XMLDump_dumpExp2(threadData, _e2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 7: {
          modelica_metatype tmpMeta18;
          modelica_metatype tmpMeta19;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,8,2) == 0) goto tmp2_end;
          tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          _op = tmpMeta18;
          _e1 = tmpMeta19;
          tmp3 += 29; /* Pattern matching succeeded; we may skip some cases if we fail */
          _sym = omc_XMLDump_unaryopSymbol(threadData, _op);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _sym);

          omc_XMLDump_dumpExp2(threadData, _e1);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 8: {
          modelica_metatype tmpMeta20;
          modelica_metatype tmpMeta21;
          modelica_metatype tmpMeta22;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,9,3) == 0) goto tmp2_end;
          tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          _e1 = tmpMeta20;
          _op = tmpMeta21;
          _e2 = tmpMeta22;
          tmp3 += 28; /* Pattern matching succeeded; we may skip some cases if we fail */
          _sym = omc_XMLDump_lbinopSymbol(threadData, _op);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _sym);

          omc_XMLDump_dumpExp2(threadData, _e1);

          omc_XMLDump_dumpExp2(threadData, _e2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 9: {
          modelica_metatype tmpMeta23;
          modelica_metatype tmpMeta24;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,10,2) == 0) goto tmp2_end;
          tmpMeta23 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta24 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          _op = tmpMeta23;
          _e1 = tmpMeta24;
          tmp3 += 27; /* Pattern matching succeeded; we may skip some cases if we fail */
          _sym = omc_XMLDump_lunaryopSymbol(threadData, _op);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _sym);

          omc_XMLDump_dumpExp2(threadData, _e1);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 10: {
          modelica_metatype tmpMeta25;
          modelica_metatype tmpMeta26;
          modelica_metatype tmpMeta27;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,11,5) == 0) goto tmp2_end;
          tmpMeta25 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta26 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta27 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          
          _e1 = tmpMeta25;
          _op = tmpMeta26;
          _e2 = tmpMeta27;
          tmp3 += 26; /* Pattern matching succeeded; we may skip some cases if we fail */
          _sym = omc_XMLDump_relopSymbol(threadData, _op);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _sym);

          omc_XMLDump_dumpExp2(threadData, _e1);

          omc_XMLDump_dumpExp2(threadData, _e2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 11: {
          modelica_metatype tmpMeta28;
          modelica_metatype tmpMeta29;
          modelica_metatype tmpMeta30;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,12,3) == 0) goto tmp2_end;
          tmpMeta28 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta29 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta30 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          _cond = tmpMeta28;
          _tb = tmpMeta29;
          _fb = tmpMeta30;
          tmp3 += 25; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT153);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT154);

          omc_XMLDump_dumpExp2(threadData, _tb);

          omc_XMLDump_dumpExp2(threadData, _cond);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT154);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT155);

          omc_XMLDump_dumpExp2(threadData, _fb);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT155);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT153);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 12: {
          modelica_metatype tmpMeta31;
          modelica_metatype tmpMeta32;
          modelica_metatype tmpMeta33;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,13,3) == 0) goto tmp2_end;
          tmpMeta31 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta31,1,1) == 0) goto tmp2_end;
          tmpMeta32 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta31), 2));
          if (3 != MMC_STRLEN(tmpMeta32) || strcmp(MMC_STRINGDATA(_OMC_LIT175), MMC_STRINGDATA(tmpMeta32)) != 0) goto tmp2_end;
          tmpMeta33 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _args = tmpMeta33;
          tmp3 += 6; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT156);

          omc_XMLDump_dumpList(threadData, _args, boxvar_XMLDump_dumpExp2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 13: {
          modelica_metatype tmpMeta34;
          modelica_metatype tmpMeta35;
          modelica_metatype tmpMeta36;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,13,3) == 0) goto tmp2_end;
          tmpMeta34 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta34,1,1) == 0) goto tmp2_end;
          tmpMeta35 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta34), 2));
          if (4 != MMC_STRLEN(tmpMeta35) || strcmp(MMC_STRINGDATA(_OMC_LIT176), MMC_STRINGDATA(tmpMeta35)) != 0) goto tmp2_end;
          tmpMeta36 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _args = tmpMeta36;
          tmp3 += 5; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT157);

          omc_XMLDump_dumpList(threadData, _args, boxvar_XMLDump_dumpExp2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 14: {
          modelica_metatype tmpMeta37;
          modelica_metatype tmpMeta38;
          modelica_metatype tmpMeta39;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,13,3) == 0) goto tmp2_end;
          tmpMeta37 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta37,1,1) == 0) goto tmp2_end;
          tmpMeta38 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta37), 2));
          if (4 != MMC_STRLEN(tmpMeta38) || strcmp(MMC_STRINGDATA(_OMC_LIT177), MMC_STRINGDATA(tmpMeta38)) != 0) goto tmp2_end;
          tmpMeta39 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _args = tmpMeta39;
          tmp3 += 4; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT158);

          omc_XMLDump_dumpList(threadData, _args, boxvar_XMLDump_dumpExp2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 15: {
          modelica_metatype tmpMeta40;
          modelica_metatype tmpMeta41;
          modelica_metatype tmpMeta42;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,13,3) == 0) goto tmp2_end;
          tmpMeta40 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta40,1,1) == 0) goto tmp2_end;
          tmpMeta41 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta40), 2));
          if (4 != MMC_STRLEN(tmpMeta41) || strcmp(MMC_STRINGDATA(_OMC_LIT178), MMC_STRINGDATA(tmpMeta41)) != 0) goto tmp2_end;
          tmpMeta42 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _args = tmpMeta42;
          tmp3 += 3; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT159);

          omc_XMLDump_dumpList(threadData, _args, boxvar_XMLDump_dumpExp2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 16: {
          modelica_metatype tmpMeta43;
          modelica_metatype tmpMeta44;
          modelica_metatype tmpMeta45;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,13,3) == 0) goto tmp2_end;
          tmpMeta43 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta43,1,1) == 0) goto tmp2_end;
          tmpMeta44 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta43), 2));
          if (5 != MMC_STRLEN(tmpMeta44) || strcmp(MMC_STRINGDATA(_OMC_LIT161), MMC_STRINGDATA(tmpMeta44)) != 0) goto tmp2_end;
          tmpMeta45 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _args = tmpMeta45;
          tmp3 += 2; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT160);

          omc_Print_printBuf(threadData, _OMC_LIT161);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT160);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT160);

          omc_Print_printBuf(threadData, _OMC_LIT100);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT160);

          omc_XMLDump_dumpList(threadData, _args, boxvar_XMLDump_dumpExp2);

          omc_XMLDump_dumpComment(threadData, _OMC_LIT162);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT160);

          omc_Print_printBuf(threadData, _OMC_LIT101);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT160);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 17: {
          modelica_metatype tmpMeta46;
          modelica_metatype tmpMeta47;
          modelica_metatype tmpMeta48;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,13,3) == 0) goto tmp2_end;
          tmpMeta46 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta46,1,1) == 0) goto tmp2_end;
          tmpMeta47 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta46), 2));
          if (3 != MMC_STRLEN(tmpMeta47) || strcmp(MMC_STRINGDATA(_OMC_LIT164), MMC_STRINGDATA(tmpMeta47)) != 0) goto tmp2_end;
          tmpMeta48 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _args = tmpMeta48;
          tmp3 += 1; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT163);

          omc_XMLDump_dumpList(threadData, _args, boxvar_XMLDump_dumpExp2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 18: {
          modelica_metatype tmpMeta49;
          modelica_metatype tmpMeta50;
          modelica_metatype tmpMeta51;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,13,3) == 0) goto tmp2_end;
          tmpMeta49 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta49,1,1) == 0) goto tmp2_end;
          tmpMeta50 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta49), 2));
          if (5 != MMC_STRLEN(tmpMeta50) || strcmp(MMC_STRINGDATA(_OMC_LIT179), MMC_STRINGDATA(tmpMeta50)) != 0) goto tmp2_end;
          tmpMeta51 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _args = tmpMeta51;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT164);

          omc_XMLDump_dumpList(threadData, _args, boxvar_XMLDump_dumpExp2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 19: {
          modelica_metatype tmpMeta52;
          modelica_metatype tmpMeta53;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,13,3) == 0) goto tmp2_end;
          tmpMeta52 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta53 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _fcn = tmpMeta52;
          _args = tmpMeta53;
          tmp3 += 17; /* Pattern matching succeeded; we may skip some cases if we fail */
          _fs = omc_AbsynUtil_pathStringNoQual(threadData, _fcn, _OMC_LIT135, 0 /* false */, 0 /* false */);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _fs);

          omc_XMLDump_dumpList(threadData, _args, boxvar_XMLDump_dumpExp2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 20: {
          modelica_metatype tmpMeta54;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,16,3) == 0) goto tmp2_end;
          tmpMeta54 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          _es = tmpMeta54;
          tmp3 += 16; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT165);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT166);

          omc_XMLDump_dumpList(threadData, _es, boxvar_XMLDump_dumpExp2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT166);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 21: {
          modelica_metatype tmpMeta55;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,19,1) == 0) goto tmp2_end;
          tmpMeta55 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          _es = tmpMeta55;
          tmp3 += 15; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT165);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT166);

          omc_XMLDump_dumpList(threadData, _es, boxvar_XMLDump_dumpExp2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT166);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 22: {
          modelica_metatype tmpMeta56;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,17,3) == 0) goto tmp2_end;
          tmpMeta56 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          _ebs = tmpMeta56;
          tmp3 += 14; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT139);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT137);

          omc_XMLDump_dumpListSeparator(threadData, _ebs, boxvar_XMLDump_dumpRow, _OMC_LIT167);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT137);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT139);
          goto tmp2_done;
        }
        case 23: {
          modelica_metatype tmpMeta57;
          modelica_metatype tmpMeta58;
          modelica_metatype tmpMeta59;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,18,4) == 0) goto tmp2_end;
          tmpMeta57 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta58 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          if (!optionNone(tmpMeta58)) goto tmp2_end;
          tmpMeta59 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 5));
          _start = tmpMeta57;
          _stop = tmpMeta59;
          tmp3 += 13; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT56);

          omc_XMLDump_dumpExp2(threadData, _start);

          omc_XMLDump_dumpExp2(threadData, _stop);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT56);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 24: {
          modelica_metatype tmpMeta60;
          modelica_metatype tmpMeta61;
          modelica_metatype tmpMeta62;
          modelica_metatype tmpMeta63;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,18,4) == 0) goto tmp2_end;
          tmpMeta60 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta61 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          if (optionNone(tmpMeta61)) goto tmp2_end;
          tmpMeta62 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta61), 1));
          tmpMeta63 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 5));
          _start = tmpMeta60;
          _step = tmpMeta62;
          _stop = tmpMeta63;
          tmp3 += 12; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT160);

          omc_Print_printBuf(threadData, _OMC_LIT168);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT160);

          omc_XMLDump_dumpExp2(threadData, _start);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT160);

          omc_Print_printBuf(threadData, _OMC_LIT104);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT160);

          omc_XMLDump_dumpExp2(threadData, _step);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT160);

          omc_Print_printBuf(threadData, _OMC_LIT104);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT160);

          omc_XMLDump_dumpExp2(threadData, _stop);

          omc_XMLDump_dumpComment(threadData, _OMC_LIT169);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT160);

          omc_Print_printBuf(threadData, _OMC_LIT170);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT160);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 25: {
          modelica_metatype tmpMeta64;
          modelica_metatype tmpMeta65;
          modelica_metatype tmpMeta66;
          modelica_integer tmp67;
          modelica_boolean tmp68;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,20,2) == 0) goto tmp2_end;
          tmpMeta64 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta64,1,1) == 0) goto tmp2_end;
          tmpMeta65 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta65,0,1) == 0) goto tmp2_end;
          tmpMeta66 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta65), 2));
          tmp67 = mmc_unbox_integer(tmpMeta66);
          _ival = tmp67  /* pattern as ty=Integer */;
          tmp3 += 1; /* Pattern matching succeeded; we may skip some cases if we fail */
          /* Pattern-matching assignment */
          tmp68 = omc_Config_modelicaOutput(threadData);
          if (0 /* false */ != tmp68) goto goto_1;

          _rval = ((modelica_real)_ival);

          _res = realString(_rval);

          omc_XMLDump_dumpStrMathMLNumberAttr(threadData, _res, _OMC_LIT88, _OMC_LIT152);
          goto tmp2_done;
        }
        case 26: {
          modelica_metatype tmpMeta69;
          modelica_metatype tmpMeta70;
          modelica_metatype tmpMeta71;
          modelica_metatype tmpMeta72;
          modelica_metatype tmpMeta73;
          modelica_integer tmp74;
          modelica_boolean tmp75;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,20,2) == 0) goto tmp2_end;
          tmpMeta69 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta69,1,1) == 0) goto tmp2_end;
          tmpMeta70 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta70,8,2) == 0) goto tmp2_end;
          tmpMeta71 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta70), 2));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta71,5,1) == 0) goto tmp2_end;
          tmpMeta72 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta70), 3));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta72,0,1) == 0) goto tmp2_end;
          tmpMeta73 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta72), 2));
          tmp74 = mmc_unbox_integer(tmpMeta73);
          _ival = tmp74  /* pattern as ty=Integer */;
          /* Pattern matching succeeded */
          /* Pattern-matching assignment */
          tmp75 = omc_Config_modelicaOutput(threadData);
          if (0 /* false */ != tmp75) goto goto_1;

          _rval = ((modelica_real)_ival);

          _res = realString(_rval);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT1);

          omc_XMLDump_dumpStrMathMLNumberAttr(threadData, _res, _OMC_LIT88, _OMC_LIT152);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 27: {
          modelica_metatype tmpMeta76;
          modelica_metatype tmpMeta77;
          modelica_boolean tmp78;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,20,2) == 0) goto tmp2_end;
          tmpMeta76 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta76,1,1) == 0) goto tmp2_end;
          tmpMeta77 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          _e = tmpMeta77;
          /* Pattern matching succeeded */
          /* Pattern-matching assignment */
          tmp78 = omc_Config_modelicaOutput(threadData);
          if (0 /* false */ != tmp78) goto goto_1;

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT152);

          omc_XMLDump_dumpExp2(threadData, _e);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 28: {
          modelica_metatype tmpMeta79;
          modelica_metatype tmpMeta80;
          modelica_boolean tmp81;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,20,2) == 0) goto tmp2_end;
          tmpMeta79 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta79,1,1) == 0) goto tmp2_end;
          tmpMeta80 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          _e = tmpMeta80;
          /* Pattern matching succeeded */
          /* Pattern-matching assignment */
          tmp81 = omc_Config_modelicaOutput(threadData);
          if (1 /* true */ != tmp81) goto goto_1;

          omc_XMLDump_dumpExp2(threadData, _e);
          goto tmp2_done;
        }
        case 29: {
          modelica_metatype tmpMeta82;
          modelica_metatype tmpMeta83;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,20,2) == 0) goto tmp2_end;
          tmpMeta82 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta83 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          _tp = tmpMeta82;
          _e = tmpMeta83;
          tmp3 += 7; /* Pattern matching succeeded; we may skip some cases if we fail */
          _str = omc_Types_unparseType(threadData, _tp);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT160);

          omc_Print_printBuf(threadData, _OMC_LIT100);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT160);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT160);

          omc_Print_printBuf(threadData, _OMC_LIT171);

          omc_Print_printBuf(threadData, _str);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT160);

          omc_XMLDump_dumpExp2(threadData, _e);

          omc_XMLDump_dumpComment(threadData, _OMC_LIT172);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT160);

          omc_Print_printBuf(threadData, _OMC_LIT101);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT160);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 30: {
          modelica_metatype tmpMeta84;
          modelica_metatype tmpMeta85;
          modelica_metatype tmpMeta86;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,21,2) == 0) goto tmp2_end;
          tmpMeta84 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta85 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          _e1 = tmpMeta84;
          _subs = tmpMeta85;
          tmp3 += 6; /* Pattern matching succeeded; we may skip some cases if we fail */
          {
            modelica_metatype __omcQ_24tmpVar3;
            modelica_metatype* tmp87;
            modelica_metatype tmpMeta88;
            modelica_metatype __omcQ_24tmpVar2;
            modelica_integer tmp89;
            modelica_metatype _sub_loopVar = 0;
            modelica_metatype _sub;
            _sub_loopVar = _subs;
            tmpMeta88 = MMC_REFSTRUCTLIT(mmc_nil);
            __omcQ_24tmpVar3 = tmpMeta88; /* defaultValue */
            tmp87 = &__omcQ_24tmpVar3;
            while(1) {
              tmp89 = 1;
              if (!listEmpty(_sub_loopVar)) {
                _sub = MMC_CAR(_sub_loopVar);
                _sub_loopVar = MMC_CDR(_sub_loopVar);
                tmp89--;
              }
              if (tmp89 == 0) {
                __omcQ_24tmpVar2 = omc_Expression_getSubscriptExp(threadData, _sub);
                *tmp87 = mmc_mk_cons(__omcQ_24tmpVar2,0);
                tmp87 = &MMC_CDR(*tmp87);
              } else if (tmp89 == 1) {
                break;
              } else {
                goto goto_1;
              }
            }
            *tmp87 = mmc_mk_nil();
            tmpMeta86 = __omcQ_24tmpVar3;
          }
          _args = tmpMeta86;

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT173);

          omc_XMLDump_dumpExp2(threadData, _e1);

          omc_XMLDump_dumpList(threadData, _args, boxvar_XMLDump_dumpExp2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);
          goto tmp2_done;
        }
        case 31: {
          modelica_metatype tmpMeta90;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,5,2) == 0) goto tmp2_end;
          tmpMeta90 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          
          _fcn = tmpMeta90;
          tmp3 += 5; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrMathMLVariable(threadData, omc_AbsynUtil_pathStringNoQual(threadData, _fcn, _OMC_LIT135, 0 /* false */, 0 /* false */));
          goto tmp2_done;
        }
        case 32: {
          modelica_metatype tmpMeta91;
          modelica_metatype tmpMeta92;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,24,2) == 0) goto tmp2_end;
          tmpMeta91 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          if (optionNone(tmpMeta91)) goto tmp2_end;
          tmpMeta92 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta91), 1));
          tmp3 += 4; /* Pattern matching succeeded; we may skip some cases if we fail */
          goto tmp2_done;
        }
        case 33: {
          modelica_metatype tmpMeta93;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,24,2) == 0) goto tmp2_end;
          tmpMeta93 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          if (!optionNone(tmpMeta93)) goto tmp2_end;
          tmp3 += 3; /* Pattern matching succeeded; we may skip some cases if we fail */
          goto tmp2_done;
        }
        case 34: {
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,27,3) == 0) goto tmp2_end;
          
          tmp3 += 2; /* Pattern matching succeeded; we may skip some cases if we fail */
          goto tmp2_done;
        }
        case 35: {
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,28,1) == 0) goto tmp2_end;
          
          tmp3 += 1; /* Pattern matching succeeded; we may skip some cases if we fail */
          goto tmp2_done;
        }
        case 36: {
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,29,2) == 0) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 37: {
          modelica_metatype tmpMeta94;
          
          /* Pattern matching succeeded */
          tmpMeta94 = stringAppend(_OMC_LIT174,omc_ExpressionDump_printExpStr(threadData, _inExp));
          omc_XMLDump_dumpComment(threadData, tmpMeta94);
          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 < 38) {
        goto tmp2_top;
      }
      MMC_THROW_INTERNAL();
      tmp2_done2:;
    }
  }
  ;
  _return: OMC_LABEL_UNUSED
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpExp(threadData_t *threadData, modelica_metatype _e, modelica_boolean _addMathMLCode)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_metatype tmp3_1;volatile modelica_boolean tmp3_2;
    tmp3_1 = _e;
    tmp3_2 = _addMathMLCode;
    {
      modelica_metatype _inExp = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _inExp has no default value.
      tmp3 = 0;
      MMC_TRY_INTERNAL(mmc_jumper)
      tmp2_top:
      threadData->mmc_jumper = &new_mmc_jumper;
      for (; tmp3 < 3; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (1 /* true */ != tmp3_2) goto tmp2_end;
          
          _inExp = tmp3_1;
          tmp3 += 1; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT7, _OMC_LIT8, _OMC_LIT9);

          omc_XMLDump_dumpExp2(threadData, _inExp);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT7);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT6);
          goto tmp2_done;
        }
        case 1: {
          if (0 /* false */ != tmp3_2) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 2: {
          
          /* Pattern matching succeeded */
          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 < 3) {
        goto tmp2_top;
      }
      MMC_THROW_INTERNAL();
      tmp2_done2:;
    }
  }
  ;
  _return: OMC_LABEL_UNUSED
  return;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpExp(threadData_t *threadData, modelica_metatype _e, modelica_metatype _addMathMLCode)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_addMathMLCode);
  omc_XMLDump_dumpExp(threadData, _e, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpEquation(threadData_t *threadData, modelica_metatype _inEquation, modelica_string _inIndexNumber, modelica_boolean _addMathMLCode)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;modelica_string tmp3_2;modelica_boolean tmp3_3;
    tmp3_1 = _inEquation;
    tmp3_2 = _inIndexNumber;
    tmp3_3 = _addMathMLCode;
    {
      modelica_string _s = NULL;
      modelica_string _s1 = NULL;
      modelica_string _s2 = NULL;
      modelica_string _res = NULL;
      modelica_string _is = NULL;
      modelica_string _indexS = NULL;
      modelica_metatype _e1 = NULL;
      modelica_metatype _e2 = NULL;
      modelica_metatype _e = NULL;
      modelica_metatype _cr = NULL;
      modelica_metatype _stmts = NULL;
      modelica_metatype _source = NULL;
      modelica_metatype _whenStmtLst = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _s has no default value.
      // _s1 has no default value.
      // _s2 has no default value.
      // _res has no default value.
      // _is has no default value.
      // _indexS has no default value.
      // _e1 has no default value.
      // _e2 has no default value.
      // _e has no default value.
      // _cr has no default value.
      // _stmts has no default value.
      // _source has no default value.
      // _whenStmtLst has no default value.
      tmp3 = 0;
      for (; tmp3 < 14; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          if (1 /* true */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,0,4) == 0) goto tmp2_end;
          tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _e1 = tmpMeta5;
          _e2 = tmpMeta6;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e1);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          tmpMeta7 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT180, mmc_mk_cons(_s2, MMC_REFSTRUCTLIT(mmc_nil))));
          _res = stringAppendList(tmpMeta7);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT4, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT7, _OMC_LIT8, _OMC_LIT9);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT11);

          omc_XMLDump_dumpExp2(threadData, _e1);

          omc_XMLDump_dumpExp2(threadData, _e2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT7);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT4);
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta8;
          modelica_metatype tmpMeta9;
          modelica_metatype tmpMeta10;
          if (0 /* false */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,0,4) == 0) goto tmp2_end;
          tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _e1 = tmpMeta8;
          _e2 = tmpMeta9;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e1);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          tmpMeta10 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT180, mmc_mk_cons(_s2, MMC_REFSTRUCTLIT(mmc_nil))));
          _res = stringAppendList(tmpMeta10);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT4, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT4);
          goto tmp2_done;
        }
        case 2: {
          modelica_metatype tmpMeta11;
          modelica_metatype tmpMeta12;
          modelica_metatype tmpMeta13;
          if (1 /* true */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,6) == 0) goto tmp2_end;
          tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          
          _e1 = tmpMeta11;
          _e2 = tmpMeta12;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e1);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          tmpMeta13 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT180, mmc_mk_cons(_s2, mmc_mk_cons(_OMC_LIT27, MMC_REFSTRUCTLIT(mmc_nil)))));
          _s = stringAppendList(tmpMeta13);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT18, _OMC_LIT19, _s);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT7, _OMC_LIT8, _OMC_LIT9);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT11);

          omc_XMLDump_dumpExp2(threadData, _e1);

          omc_XMLDump_dumpExp2(threadData, _e2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT7);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT18);
          goto tmp2_done;
        }
        case 3: {
          modelica_metatype tmpMeta14;
          modelica_metatype tmpMeta15;
          modelica_metatype tmpMeta16;
          if (0 /* false */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,1,6) == 0) goto tmp2_end;
          tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          
          _e1 = tmpMeta14;
          _e2 = tmpMeta15;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e1);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          tmpMeta16 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT180, mmc_mk_cons(_s2, MMC_REFSTRUCTLIT(mmc_nil))));
          _res = stringAppendList(tmpMeta16);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT20, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT20);
          goto tmp2_done;
        }
        case 4: {
          modelica_metatype tmpMeta17;
          modelica_metatype tmpMeta18;
          modelica_metatype tmpMeta19;
          if (1 /* true */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,6,5) == 0) goto tmp2_end;
          tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          
          _e1 = tmpMeta17;
          _e2 = tmpMeta18;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e1);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          tmpMeta19 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT180, mmc_mk_cons(_s2, mmc_mk_cons(_OMC_LIT27, MMC_REFSTRUCTLIT(mmc_nil)))));
          _s = stringAppendList(tmpMeta19);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT21, _OMC_LIT19, _s);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT7, _OMC_LIT8, _OMC_LIT9);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT11);

          omc_XMLDump_dumpExp2(threadData, _e1);

          omc_XMLDump_dumpExp2(threadData, _e2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT7);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT21);
          goto tmp2_done;
        }
        case 5: {
          modelica_metatype tmpMeta20;
          modelica_metatype tmpMeta21;
          modelica_metatype tmpMeta22;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,6,5) == 0) goto tmp2_end;
          tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          
          _e1 = tmpMeta20;
          _e2 = tmpMeta21;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e1);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          tmpMeta22 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT180, mmc_mk_cons(_s2, MMC_REFSTRUCTLIT(mmc_nil))));
          _res = stringAppendList(tmpMeta22);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT21, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT21);
          goto tmp2_done;
        }
        case 6: {
          modelica_metatype tmpMeta23;
          modelica_metatype tmpMeta24;
          modelica_metatype tmpMeta25;
          if (1 /* true */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,2,4) == 0) goto tmp2_end;
          tmpMeta23 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta24 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _cr = tmpMeta23;
          _e2 = tmpMeta24;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_ComponentReference_printComponentRefStr(threadData, _cr);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          tmpMeta25 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT57, mmc_mk_cons(_s2, MMC_REFSTRUCTLIT(mmc_nil))));
          _res = stringAppendList(tmpMeta25);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT23, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT7, _OMC_LIT8, _OMC_LIT9);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT11);

          omc_XMLDump_dumpStrMathMLVariable(threadData, _s1);

          omc_XMLDump_dumpExp2(threadData, _e2);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT7);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT23);
          goto tmp2_done;
        }
        case 7: {
          modelica_metatype tmpMeta26;
          modelica_metatype tmpMeta27;
          modelica_metatype tmpMeta28;
          if (0 /* false */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,2,4) == 0) goto tmp2_end;
          tmpMeta26 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta27 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _cr = tmpMeta26;
          _e2 = tmpMeta27;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_ComponentReference_printComponentRefStr(threadData, _cr);

          _s2 = omc_XMLDump_printExpStr(threadData, _e2);

          tmpMeta28 = mmc_mk_cons(_s1, mmc_mk_cons(_OMC_LIT57, mmc_mk_cons(_s2, MMC_REFSTRUCTLIT(mmc_nil))));
          _res = stringAppendList(tmpMeta28);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT23, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT23);
          goto tmp2_done;
        }
        case 8: {
          modelica_metatype tmpMeta29;
          modelica_metatype tmpMeta30;
          modelica_metatype tmpMeta31;
          if (1 /* true */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,5,4) == 0) goto tmp2_end;
          tmpMeta29 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta30 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta29), 2));
          tmpMeta31 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta29), 3));
          
          _e1 = tmpMeta30;
          _whenStmtLst = tmpMeta31;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _is = omc_XMLDump_printExpStr(threadData, _e1);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT25, _OMC_LIT5, _indexS);

          omc_XMLDump_dumpWhenOperatorLst(threadData, _whenStmtLst, _addMathMLCode);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT26);

          omc_Print_printBuf(threadData, _OMC_LIT27);

          omc_Print_printBuf(threadData, _is);

          omc_XMLDump_dumpExp(threadData, _e1, 1 /* true */);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT26);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT25);
          goto tmp2_done;
        }
        case 9: {
          modelica_metatype tmpMeta32;
          modelica_metatype tmpMeta33;
          modelica_metatype tmpMeta34;
          if (0 /* false */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,5,4) == 0) goto tmp2_end;
          tmpMeta32 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta33 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta32), 2));
          tmpMeta34 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta32), 3));
          
          _e1 = tmpMeta33;
          _whenStmtLst = tmpMeta34;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _is = omc_XMLDump_printExpStr(threadData, _e1);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT25, _OMC_LIT5, _indexS);

          omc_XMLDump_dumpWhenOperatorLst(threadData, _whenStmtLst, _addMathMLCode);

          omc_XMLDump_dumpStrTagContent(threadData, _OMC_LIT26, _is);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT25);
          goto tmp2_done;
        }
        case 10: {
          modelica_metatype tmpMeta35;
          modelica_metatype tmpMeta36;
          if (1 /* true */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,3,3) == 0) goto tmp2_end;
          tmpMeta35 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          
          _e = tmpMeta35;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e);

          tmpMeta36 = stringAppend(_s1,_OMC_LIT28);
          _res = tmpMeta36;

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT29, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT7, _OMC_LIT8, _OMC_LIT9);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrVoidTag(threadData, _OMC_LIT11);

          omc_XMLDump_dumpExp2(threadData, _e);

          omc_XMLDump_dumpStrMathMLNumber(threadData, _OMC_LIT30);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT10);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT7);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT6);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT29);
          goto tmp2_done;
        }
        case 11: {
          modelica_metatype tmpMeta37;
          modelica_metatype tmpMeta38;
          if (0 /* false */ != tmp3_3) goto tmp2_end;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,3,3) == 0) goto tmp2_end;
          tmpMeta37 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          
          _e = tmpMeta37;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          _s1 = omc_XMLDump_printExpStr(threadData, _e);

          tmpMeta38 = stringAppend(_s1,_OMC_LIT28);
          _res = tmpMeta38;

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT29, _OMC_LIT5, _indexS);

          omc_Print_printBuf(threadData, _res);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT29);
          goto tmp2_done;
        }
        case 12: {
          modelica_metatype tmpMeta39;
          modelica_metatype tmpMeta40;
          modelica_metatype tmpMeta41;
          modelica_metatype tmpMeta42;
          modelica_metatype tmpMeta43;
          modelica_metatype tmpMeta44;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,4,5) == 0) goto tmp2_end;
          tmpMeta39 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta40 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta39), 2));
          tmpMeta41 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 4));
          
          _stmts = tmpMeta40;
          _source = tmpMeta41;
          _indexS = tmp3_2;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT31, _OMC_LIT5, _indexS);

          tmpMeta43 = mmc_mk_box2(3, &DAE_Algorithm_ALGORITHM__STMTS__desc, _stmts);
          tmpMeta44 = mmc_mk_box3(19, &DAE_Element_ALGORITHM__desc, tmpMeta43, _source);
          tmpMeta42 = mmc_mk_cons(tmpMeta44, MMC_REFSTRUCTLIT(mmc_nil));
          omc_Print_printBuf(threadData, omc_Util_xmlEscape(threadData, omc_DAEDump_dumpAlgorithmsStr(threadData, tmpMeta42)));

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT31);
          goto tmp2_done;
        }
        case 13: {
          modelica_metatype tmpMeta45;
          
          /* Pattern matching succeeded */
          _res = _OMC_LIT181;

          tmpMeta45 = mmc_mk_cons(_res, MMC_REFSTRUCTLIT(mmc_nil));
          omc_Error_addMessage(threadData, _OMC_LIT42, tmpMeta45);
          goto goto_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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpEquation(threadData_t *threadData, modelica_metatype _inEquation, modelica_metatype _inIndexNumber, modelica_metatype _addMathMLCode)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_addMathMLCode);
  omc_XMLDump_dumpEquation(threadData, _inEquation, _inIndexNumber, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpEqns2(threadData_t *threadData, modelica_metatype _inEquationLst, modelica_metatype _inVarLst, modelica_integer _inInteger, modelica_boolean _addMathMLCode, modelica_boolean _dumpResiduals, modelica_boolean _dumpSolved)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_metatype tmp3_1;volatile modelica_metatype tmp3_2;volatile modelica_integer tmp3_3;volatile modelica_boolean tmp3_4;volatile modelica_boolean tmp3_5;volatile modelica_boolean tmp3_6;
    tmp3_1 = _inEquationLst;
    tmp3_2 = _inVarLst;
    tmp3_3 = _inInteger;
    tmp3_4 = _addMathMLCode;
    tmp3_5 = _dumpResiduals;
    tmp3_6 = _dumpSolved;
    {
      modelica_integer _index;
      modelica_metatype _eqn = NULL;
      modelica_metatype _eqns = NULL;
      modelica_metatype _var = NULL;
      modelica_metatype _vars = NULL;
      modelica_boolean _addMMLCode;
      modelica_metatype _cref = NULL;
      modelica_metatype _varexp = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _index has no default value.
      // _eqn has no default value.
      // _eqns has no default value.
      // _var has no default value.
      // _vars has no default value.
      // _addMMLCode has no default value.
      // _cref has no default value.
      // _varexp has no default value.
      tmp3 = 0;
      MMC_TRY_INTERNAL(mmc_jumper)
      tmp2_top:
      threadData->mmc_jumper = &new_mmc_jumper;
      for (; tmp3 < 5; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          
          tmp3 += 4; /* Pattern matching succeeded; we may skip some cases if we fail */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          if (0 /* false */ != tmp3_5) goto tmp2_end;
          if (0 /* false */ != tmp3_6) goto tmp2_end;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          
          _eqn = tmpMeta5;
          _eqns = tmpMeta6;
          _index = tmp3_3;
          _addMMLCode = tmp3_4;
          tmp3 += 3; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpEquation(threadData, _eqn, intString(_index), _addMMLCode);

          omc_XMLDump_dumpEqns2(threadData, _eqns, _inVarLst, ((modelica_integer) 1) + _index, _addMMLCode, 0 /* false */, 0 /* false */);
          goto tmp2_done;
        }
        case 2: {
          modelica_metatype tmpMeta7;
          modelica_metatype tmpMeta8;
          if (1 /* true */ != tmp3_5) goto tmp2_end;
          if (0 /* false */ != tmp3_6) goto tmp2_end;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta7 = MMC_CAR(tmp3_1);
          tmpMeta8 = MMC_CDR(tmp3_1);
          
          _eqn = tmpMeta7;
          _eqns = tmpMeta8;
          _index = tmp3_3;
          _addMMLCode = tmp3_4;
          tmp3 += 2; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpResidual(threadData, _eqn, intString(_index), _addMMLCode);

          omc_XMLDump_dumpEqns2(threadData, _eqns, _inVarLst, ((modelica_integer) 1) + _index, _addMMLCode, 1 /* true */, 0 /* false */);
          goto tmp2_done;
        }
        case 3: {
          modelica_metatype tmpMeta9;
          modelica_metatype tmpMeta10;
          modelica_metatype tmpMeta11;
          modelica_metatype tmpMeta12;
          if (0 /* false */ != tmp3_5) goto tmp2_end;
          if (1 /* true */ != tmp3_6) goto tmp2_end;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta9 = MMC_CAR(tmp3_1);
          tmpMeta10 = MMC_CDR(tmp3_1);
          if (listEmpty(tmp3_2)) goto tmp2_end;
          tmpMeta11 = MMC_CAR(tmp3_2);
          tmpMeta12 = MMC_CDR(tmp3_2);
          
          _eqn = tmpMeta9;
          _eqns = tmpMeta10;
          _var = tmpMeta11;
          _vars = tmpMeta12;
          _index = tmp3_3;
          _addMMLCode = tmp3_4;
          /* Pattern matching succeeded */
          _cref = omc_BackendVariable_varCref(threadData, _var);

          _varexp = omc_Expression_crefExp(threadData, _cref);

          _varexp = (omc_BackendVariable_isStateVar(threadData, _var)?omc_Expression_expDer(threadData, _varexp):_varexp);

          _eqn = omc_BackendEquation_solveEquation(threadData, _eqn, _varexp, mmc_mk_none());

          omc_XMLDump_dumpEquation(threadData, _eqn, intString(_index), _addMMLCode);

          omc_XMLDump_dumpEqns2(threadData, _eqns, _vars, ((modelica_integer) 1) + _index, _addMMLCode, 0 /* false */, 1 /* true */);
          goto tmp2_done;
        }
        case 4: {
          modelica_metatype tmpMeta13;
          modelica_metatype tmpMeta14;
          modelica_metatype tmpMeta15;
          modelica_metatype tmpMeta16;
          if (0 /* false */ != tmp3_5) goto tmp2_end;
          if (1 /* true */ != tmp3_6) goto tmp2_end;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta13 = MMC_CAR(tmp3_1);
          tmpMeta14 = MMC_CDR(tmp3_1);
          if (listEmpty(tmp3_2)) goto tmp2_end;
          tmpMeta15 = MMC_CAR(tmp3_2);
          tmpMeta16 = MMC_CDR(tmp3_2);
          
          _eqn = tmpMeta13;
          _eqns = tmpMeta14;
          _vars = tmpMeta16;
          _index = tmp3_3;
          _addMMLCode = tmp3_4;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpEquation(threadData, _eqn, intString(_index), _addMMLCode);

          omc_XMLDump_dumpEqns2(threadData, _eqns, _vars, ((modelica_integer) 1) + _index, _addMMLCode, 0 /* false */, 1 /* true */);
          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 < 5) {
        goto tmp2_top;
      }
      MMC_THROW_INTERNAL();
      tmp2_done2:;
    }
  }
  ;
  _return: OMC_LABEL_UNUSED
  return;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpEqns2(threadData_t *threadData, modelica_metatype _inEquationLst, modelica_metatype _inVarLst, modelica_metatype _inInteger, modelica_metatype _addMathMLCode, modelica_metatype _dumpResiduals, modelica_metatype _dumpSolved)
{
  modelica_integer tmp1;
  modelica_integer tmp2;
  modelica_integer tmp3;
  modelica_integer tmp4;
  tmp1 = mmc_unbox_integer(_inInteger);
  tmp2 = mmc_unbox_integer(_addMathMLCode);
  tmp3 = mmc_unbox_integer(_dumpResiduals);
  tmp4 = mmc_unbox_integer(_dumpSolved);
  omc_XMLDump_dumpEqns2(threadData, _inEquationLst, _inVarLst, tmp1, tmp2, tmp3, tmp4);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpEqns(threadData_t *threadData, modelica_metatype _eqns, modelica_string _inContent, modelica_boolean _addMathMLCode, modelica_boolean _dumpResiduals, modelica_boolean _dumpSolved)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;modelica_boolean tmp3_2;
    tmp3_1 = _eqns;
    tmp3_2 = _addMathMLCode;
    {
      modelica_boolean _addMMLCode;
      modelica_integer _len;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _addMMLCode has no default value.
      // _len has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          
          _addMMLCode = tmp3_2;
          /* Pattern matching succeeded */
          _len = listLength(_eqns);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _inContent, _OMC_LIT51, intString(_len));

          tmpMeta5 = MMC_REFSTRUCTLIT(mmc_nil);
          omc_XMLDump_dumpEqns2(threadData, _eqns, tmpMeta5, ((modelica_integer) 1), _addMMLCode, _dumpResiduals, _dumpSolved);

          omc_XMLDump_dumpStrCloseTag(threadData, _inContent);
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpEqns(threadData_t *threadData, modelica_metatype _eqns, modelica_metatype _inContent, modelica_metatype _addMathMLCode, modelica_metatype _dumpResiduals, modelica_metatype _dumpSolved)
{
  modelica_integer tmp1;
  modelica_integer tmp2;
  modelica_integer tmp3;
  tmp1 = mmc_unbox_integer(_addMathMLCode);
  tmp2 = mmc_unbox_integer(_dumpResiduals);
  tmp3 = mmc_unbox_integer(_dumpSolved);
  omc_XMLDump_dumpEqns(threadData, _eqns, _inContent, tmp1, tmp2, tmp3);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpSolvedEqns(threadData_t *threadData, modelica_metatype _eqns, modelica_integer _inCount, modelica_string _inContent, modelica_boolean _addMathMLCode, modelica_boolean _dumpResiduals, modelica_boolean _dumpSolved)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;modelica_boolean tmp3_2;
    tmp3_1 = _eqns;
    tmp3_2 = _addMathMLCode;
    {
      modelica_boolean _addMMLCode;
      modelica_metatype _eqnsLst = NULL;
      modelica_metatype _varLst = NULL;
      modelica_metatype _rest = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _addMMLCode has no default value.
      // _eqnsLst has no default value.
      // _varLst has no default value.
      // _rest has no default value.
      tmp3 = 0;
      for (; tmp3 < 3; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 1));
          if (!listEmpty(tmpMeta7)) goto tmp2_end;
          
          _rest = tmpMeta6;
          /* Pattern matching succeeded */
          /* Tail recursive call */
          _eqns = _rest;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          goto tmp2_done;
        }
        case 2: {
          modelica_metatype tmpMeta8;
          modelica_metatype tmpMeta9;
          modelica_metatype tmpMeta10;
          modelica_metatype tmpMeta11;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta8 = MMC_CAR(tmp3_1);
          tmpMeta9 = MMC_CDR(tmp3_1);
          tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 1));
          tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta8), 2));
          
          _eqnsLst = tmpMeta10;
          _varLst = tmpMeta11;
          _rest = tmpMeta9;
          _addMMLCode = tmp3_2;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpEqns2(threadData, _eqnsLst, _varLst, _inCount, _addMMLCode, _dumpResiduals, _dumpSolved);

          /* Tail recursive call */
          _eqns = _rest;
          _inCount = ((modelica_integer) 1) + _inCount;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpSolvedEqns(threadData_t *threadData, modelica_metatype _eqns, modelica_metatype _inCount, modelica_metatype _inContent, modelica_metatype _addMathMLCode, modelica_metatype _dumpResiduals, modelica_metatype _dumpSolved)
{
  modelica_integer tmp1;
  modelica_integer tmp2;
  modelica_integer tmp3;
  modelica_integer tmp4;
  tmp1 = mmc_unbox_integer(_inCount);
  tmp2 = mmc_unbox_integer(_addMathMLCode);
  tmp3 = mmc_unbox_integer(_dumpResiduals);
  tmp4 = mmc_unbox_integer(_dumpSolved);
  omc_XMLDump_dumpSolvedEqns(threadData, _eqns, tmp1, _inContent, tmp2, tmp3, tmp4);
  return;
}

PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_dumpDirectionStr(threadData_t *threadData, modelica_metatype _inVarDirection)
{
  modelica_string _outString = NULL;
  modelica_string tmp1 = 0;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outString has no default value.
  { /* match expression */
    modelica_metatype tmp4_1;
    tmp4_1 = _inVarDirection;
    {
      modelica_string _error_msg = NULL;
      int tmp4;
      // _error_msg has no default value.
      {
        switch (MMC_SWITCH_CAST(valueConstructor(tmp4_1))) {
        case 3: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT182;
          goto tmp3_done;
        }
        case 4: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT183;
          goto tmp3_done;
        }
        case 5: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT184;
          goto tmp3_done;
        }
        default:
        tmp3_default: OMC_LABEL_UNUSED; {
          modelica_metatype tmpMeta5;
          
          /* Pattern matching succeeded */
          _error_msg = _OMC_LIT185;

          tmpMeta5 = mmc_mk_cons(_error_msg, MMC_REFSTRUCTLIT(mmc_nil));
          omc_Error_addMessage(threadData, _OMC_LIT42, tmpMeta5);
          goto goto_2;
          goto tmp3_done;
        }
        }
        goto tmp3_end;
        tmp3_end: ;
      }
      goto goto_2;
      goto_2:;
      MMC_THROW_INTERNAL();
      goto tmp3_done;
      tmp3_done:;
    }
  }
  _outString = tmp1;
  _return: OMC_LABEL_UNUSED
  return _outString;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpDAEVariableAttributes(threadData_t *threadData, modelica_metatype _dae_var_attr, modelica_string _Content, modelica_boolean _addMathMLCode)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_metatype tmp3_1;volatile modelica_boolean tmp3_2;
    tmp3_1 = _dae_var_attr;
    tmp3_2 = _addMathMLCode;
    {
      modelica_metatype _min = NULL;
      modelica_metatype _max = NULL;
      modelica_metatype _quant = NULL;
      modelica_metatype _unit = NULL;
      modelica_metatype _displayUnit = NULL;
      modelica_metatype _Initial = NULL;
      modelica_metatype _nominal = NULL;
      modelica_metatype _fixed = NULL;
      modelica_metatype _stateSel = NULL;
      modelica_boolean _addMMLCode;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _min has no default value.
      // _max has no default value.
      // _quant has no default value.
      // _unit has no default value.
      // _displayUnit has no default value.
      // _Initial has no default value.
      // _nominal has no default value.
      // _fixed has no default value.
      // _stateSel has no default value.
      // _addMMLCode has no default value.
      tmp3 = 0;
      MMC_TRY_INTERNAL(mmc_jumper)
      tmp2_top:
      threadData->mmc_jumper = &new_mmc_jumper;
      for (; tmp3 < 12; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          modelica_metatype tmpMeta8;
          modelica_metatype tmpMeta9;
          modelica_metatype tmpMeta10;
          modelica_metatype tmpMeta11;
          modelica_metatype tmpMeta12;
          modelica_metatype tmpMeta13;
          modelica_metatype tmpMeta14;
          modelica_metatype tmpMeta15;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta5,0,15) == 0) goto tmp2_end;
          tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 2));
          if (!optionNone(tmpMeta6)) goto tmp2_end;
          tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 3));
          if (!optionNone(tmpMeta7)) goto tmp2_end;
          tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 4));
          if (!optionNone(tmpMeta8)) goto tmp2_end;
          tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 5));
          if (!optionNone(tmpMeta9)) goto tmp2_end;
          tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 6));
          if (!optionNone(tmpMeta10)) goto tmp2_end;
          tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 7));
          if (!optionNone(tmpMeta11)) goto tmp2_end;
          tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 8));
          if (!optionNone(tmpMeta12)) goto tmp2_end;
          tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 9));
          if (!optionNone(tmpMeta13)) goto tmp2_end;
          tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 10));
          if (!optionNone(tmpMeta14)) goto tmp2_end;
          tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 11));
          if (!optionNone(tmpMeta15)) goto tmp2_end;
          
          tmp3 += 4; /* Pattern matching succeeded; we may skip some cases if we fail */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta16;
          modelica_metatype tmpMeta17;
          modelica_metatype tmpMeta18;
          modelica_metatype tmpMeta19;
          modelica_metatype tmpMeta20;
          modelica_metatype tmpMeta21;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta16,1,11) == 0) goto tmp2_end;
          tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta16), 2));
          if (!optionNone(tmpMeta17)) goto tmp2_end;
          tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta16), 3));
          if (!optionNone(tmpMeta18)) goto tmp2_end;
          tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta16), 4));
          if (!optionNone(tmpMeta19)) goto tmp2_end;
          tmpMeta20 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta16), 5));
          if (!optionNone(tmpMeta20)) goto tmp2_end;
          tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta16), 6));
          if (!optionNone(tmpMeta21)) goto tmp2_end;
          
          tmp3 += 4; /* Pattern matching succeeded; we may skip some cases if we fail */
          goto tmp2_done;
        }
        case 2: {
          modelica_metatype tmpMeta22;
          modelica_metatype tmpMeta23;
          modelica_metatype tmpMeta24;
          modelica_metatype tmpMeta25;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta22,2,7) == 0) goto tmp2_end;
          tmpMeta23 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 2));
          if (!optionNone(tmpMeta23)) goto tmp2_end;
          tmpMeta24 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 3));
          if (!optionNone(tmpMeta24)) goto tmp2_end;
          tmpMeta25 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 4));
          if (!optionNone(tmpMeta25)) goto tmp2_end;
          
          tmp3 += 4; /* Pattern matching succeeded; we may skip some cases if we fail */
          goto tmp2_done;
        }
        case 3: {
          modelica_metatype tmpMeta26;
          modelica_metatype tmpMeta27;
          modelica_metatype tmpMeta28;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta26 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta26,4,7) == 0) goto tmp2_end;
          tmpMeta27 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta26), 2));
          if (!optionNone(tmpMeta27)) goto tmp2_end;
          tmpMeta28 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta26), 3));
          if (!optionNone(tmpMeta28)) goto tmp2_end;
          
          tmp3 += 4; /* Pattern matching succeeded; we may skip some cases if we fail */
          goto tmp2_done;
        }
        case 4: {
          modelica_metatype tmpMeta29;
          modelica_metatype tmpMeta30;
          modelica_metatype tmpMeta31;
          modelica_metatype tmpMeta32;
          modelica_metatype tmpMeta33;
          modelica_metatype tmpMeta34;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta29 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta29,5,9) == 0) goto tmp2_end;
          tmpMeta30 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta29), 2));
          if (!optionNone(tmpMeta30)) goto tmp2_end;
          tmpMeta31 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta29), 3));
          if (!optionNone(tmpMeta31)) goto tmp2_end;
          tmpMeta32 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta29), 4));
          if (!optionNone(tmpMeta32)) goto tmp2_end;
          tmpMeta33 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta29), 5));
          if (!optionNone(tmpMeta33)) goto tmp2_end;
          tmpMeta34 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta29), 6));
          if (!optionNone(tmpMeta34)) goto tmp2_end;
          
          tmp3 += 4; /* Pattern matching succeeded; we may skip some cases if we fail */
          goto tmp2_done;
        }
        case 5: {
          modelica_metatype tmpMeta35;
          modelica_metatype tmpMeta36;
          modelica_metatype tmpMeta37;
          modelica_metatype tmpMeta38;
          modelica_metatype tmpMeta39;
          modelica_metatype tmpMeta40;
          modelica_metatype tmpMeta41;
          modelica_metatype tmpMeta42;
          modelica_metatype tmpMeta43;
          modelica_metatype tmpMeta44;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta35 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta35,0,15) == 0) goto tmp2_end;
          tmpMeta36 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta35), 2));
          tmpMeta37 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta35), 3));
          tmpMeta38 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta35), 4));
          tmpMeta39 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta35), 5));
          tmpMeta40 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta35), 6));
          tmpMeta41 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta35), 7));
          tmpMeta42 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta35), 8));
          tmpMeta43 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta35), 9));
          tmpMeta44 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta35), 10));
          
          _quant = tmpMeta36;
          _unit = tmpMeta37;
          _displayUnit = tmpMeta38;
          _min = tmpMeta39;
          _max = tmpMeta40;
          _Initial = tmpMeta41;
          _fixed = tmpMeta42;
          _nominal = tmpMeta43;
          _stateSel = tmpMeta44;
          _addMMLCode = tmp3_2;
          tmp3 += 5; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _Content);

          omc_XMLDump_dumpOptExp(threadData, _quant, _OMC_LIT186, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _unit, _OMC_LIT187, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _displayUnit, _OMC_LIT188, _addMMLCode);

          omc_XMLDump_dumpOptionDAEStateSelect(threadData, _stateSel, _OMC_LIT189);

          omc_XMLDump_dumpOptExp(threadData, _min, _OMC_LIT190, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _max, _OMC_LIT191, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _nominal, _OMC_LIT192, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _Initial, _OMC_LIT193, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _fixed, _OMC_LIT89, _addMMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _Content);
          goto tmp2_done;
        }
        case 6: {
          modelica_metatype tmpMeta45;
          modelica_metatype tmpMeta46;
          modelica_metatype tmpMeta47;
          modelica_metatype tmpMeta48;
          modelica_metatype tmpMeta49;
          modelica_metatype tmpMeta50;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta45 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta45,1,11) == 0) goto tmp2_end;
          tmpMeta46 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta45), 2));
          tmpMeta47 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta45), 3));
          tmpMeta48 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta45), 4));
          tmpMeta49 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta45), 5));
          tmpMeta50 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta45), 6));
          
          _quant = tmpMeta46;
          _min = tmpMeta47;
          _max = tmpMeta48;
          _Initial = tmpMeta49;
          _fixed = tmpMeta50;
          _addMMLCode = tmp3_2;
          tmp3 += 4; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _Content);

          omc_XMLDump_dumpOptExp(threadData, _quant, _OMC_LIT186, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _min, _OMC_LIT190, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _max, _OMC_LIT191, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _Initial, _OMC_LIT193, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _fixed, _OMC_LIT89, _addMMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _Content);
          goto tmp2_done;
        }
        case 7: {
          modelica_metatype tmpMeta51;
          modelica_metatype tmpMeta52;
          modelica_metatype tmpMeta53;
          modelica_metatype tmpMeta54;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta51 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta51,2,7) == 0) goto tmp2_end;
          tmpMeta52 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta51), 2));
          tmpMeta53 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta51), 3));
          tmpMeta54 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta51), 4));
          
          _quant = tmpMeta52;
          _Initial = tmpMeta53;
          _fixed = tmpMeta54;
          _addMMLCode = tmp3_2;
          tmp3 += 3; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _Content);

          omc_XMLDump_dumpOptExp(threadData, _quant, _OMC_LIT186, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _Initial, _OMC_LIT193, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _fixed, _OMC_LIT89, _addMMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _Content);
          goto tmp2_done;
        }
        case 8: {
          modelica_metatype tmpMeta55;
          modelica_metatype tmpMeta56;
          modelica_metatype tmpMeta57;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta55 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta55,4,7) == 0) goto tmp2_end;
          tmpMeta56 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta55), 2));
          tmpMeta57 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta55), 3));
          
          _quant = tmpMeta56;
          _Initial = tmpMeta57;
          _addMMLCode = tmp3_2;
          tmp3 += 2; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _Content);

          omc_XMLDump_dumpOptExp(threadData, _quant, _OMC_LIT186, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _Initial, _OMC_LIT193, _addMMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _Content);
          goto tmp2_done;
        }
        case 9: {
          modelica_metatype tmpMeta58;
          modelica_metatype tmpMeta59;
          modelica_metatype tmpMeta60;
          modelica_metatype tmpMeta61;
          modelica_metatype tmpMeta62;
          modelica_metatype tmpMeta63;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta58 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta58,5,9) == 0) goto tmp2_end;
          tmpMeta59 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta58), 2));
          tmpMeta60 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta58), 3));
          tmpMeta61 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta58), 4));
          tmpMeta62 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta58), 5));
          tmpMeta63 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta58), 6));
          
          _quant = tmpMeta59;
          _min = tmpMeta60;
          _max = tmpMeta61;
          _Initial = tmpMeta62;
          _fixed = tmpMeta63;
          _addMMLCode = tmp3_2;
          tmp3 += 1; /* Pattern matching succeeded; we may skip some cases if we fail */
          omc_XMLDump_dumpStrOpenTag(threadData, _Content);

          omc_XMLDump_dumpOptExp(threadData, _quant, _OMC_LIT186, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _min, _OMC_LIT190, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _max, _OMC_LIT191, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _Initial, _OMC_LIT193, _addMMLCode);

          omc_XMLDump_dumpOptExp(threadData, _fixed, _OMC_LIT89, _addMMLCode);

          omc_XMLDump_dumpStrCloseTag(threadData, _Content);
          goto tmp2_done;
        }
        case 10: {
          if (!optionNone(tmp3_1)) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 11: {
          
          /* Pattern matching succeeded */
          omc_XMLDump_dumpComment(threadData, _OMC_LIT194);
          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 < 12) {
        goto tmp2_top;
      }
      MMC_THROW_INTERNAL();
      tmp2_done2:;
    }
  }
  ;
  _return: OMC_LABEL_UNUSED
  return;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpDAEVariableAttributes(threadData_t *threadData, modelica_metatype _dae_var_attr, modelica_metatype _Content, modelica_metatype _addMathMLCode)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_addMathMLCode);
  omc_XMLDump_dumpDAEVariableAttributes(threadData, _dae_var_attr, _Content, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC modelica_metatype omc_XMLDump_getOrderedEqs2(threadData_t *threadData, modelica_metatype _inComps, modelica_metatype _eqns, modelica_metatype _vars, modelica_metatype _inAccum)
{
  modelica_metatype _outEqnsVarsLst = NULL;
  modelica_metatype tmpMeta1;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outEqnsVarsLst has no default value.
  { /* match expression */
    modelica_metatype tmp4_1;
    tmp4_1 = _inComps;
    {
      modelica_integer _e;
      modelica_integer _v;
      modelica_metatype _elst = NULL;
      modelica_metatype _vlst = NULL;
      modelica_metatype _vlst1 = NULL;
      modelica_metatype _elst1 = NULL;
      modelica_metatype _vlst1Lst = NULL;
      modelica_metatype _rest = NULL;
      modelica_metatype _var = NULL;
      modelica_metatype _eqn = NULL;
      modelica_metatype _varlst = NULL;
      modelica_metatype _varlst1 = NULL;
      modelica_metatype _eqnlst = NULL;
      modelica_metatype _eqnlst1 = NULL;
      modelica_metatype _innerEquations = NULL;
      modelica_metatype _result = NULL;
      volatile mmc_switch_type tmp4;
      int tmp5;
      // _e has no default value.
      // _v has no default value.
      // _elst has no default value.
      // _vlst has no default value.
      // _vlst1 has no default value.
      // _elst1 has no default value.
      // _vlst1Lst has no default value.
      // _rest has no default value.
      // _var has no default value.
      // _eqn has no default value.
      // _varlst has no default value.
      // _varlst1 has no default value.
      // _eqnlst has no default value.
      // _eqnlst1 has no default value.
      // _innerEquations has no default value.
      // _result has no default value.
      tmp4 = 0;
      for (; tmp4 < 10; tmp4++) {
        switch (MMC_SWITCH_CAST(tmp4)) {
        case 0: {
          if (!listEmpty(tmp4_1)) goto tmp3_end;
          /* Pattern matching succeeded */
          tmpMeta1 = _inAccum;
          goto tmp3_done;
        }
        case 1: {
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          modelica_metatype tmpMeta8;
          modelica_integer tmp9;
          modelica_metatype tmpMeta10;
          modelica_integer tmp11;
          modelica_metatype tmpMeta12;
          modelica_metatype tmpMeta13;
          modelica_metatype tmpMeta14;
          modelica_metatype tmpMeta15;
          if (listEmpty(tmp4_1)) goto tmp3_end;
          tmpMeta6 = MMC_CAR(tmp4_1);
          tmpMeta7 = MMC_CDR(tmp4_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta6,0,2) == 0) goto tmp3_end;
          tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
          tmp9 = mmc_unbox_integer(tmpMeta8);
          tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 3));
          tmp11 = mmc_unbox_integer(tmpMeta10);
          _e = tmp9  /* pattern as ty=Integer */;
          _v = tmp11  /* pattern as ty=Integer */;
          _rest = tmpMeta7;
          /* Pattern matching succeeded */
          _var = omc_BackendVariable_getVarAt(threadData, _vars, _v);

          _eqn = omc_BackendEquation_get(threadData, _eqns, _e);

          tmpMeta13 = mmc_mk_cons(_eqn, MMC_REFSTRUCTLIT(mmc_nil));
          tmpMeta14 = mmc_mk_cons(_var, MMC_REFSTRUCTLIT(mmc_nil));
          tmpMeta15 = mmc_mk_box2(0, tmpMeta13, tmpMeta14);
          tmpMeta12 = mmc_mk_cons(tmpMeta15, MMC_REFSTRUCTLIT(mmc_nil));
          _result = listAppend(_inAccum, tmpMeta12);
          /* Tail recursive call */
          _inComps = _rest;
          _inAccum = _result;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          goto tmp3_done;
        }
        case 2: {
          modelica_metatype tmpMeta16;
          modelica_metatype tmpMeta17;
          modelica_metatype tmpMeta18;
          modelica_metatype tmpMeta19;
          modelica_metatype tmpMeta20;
          modelica_metatype tmpMeta21;
          if (listEmpty(tmp4_1)) goto tmp3_end;
          tmpMeta16 = MMC_CAR(tmp4_1);
          tmpMeta17 = MMC_CDR(tmp4_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta16,1,5) == 0) goto tmp3_end;
          tmpMeta18 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta16), 2));
          tmpMeta19 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta16), 3));
          
          _elst = tmpMeta18;
          _vlst = tmpMeta19;
          _rest = tmpMeta17;
          /* Pattern matching succeeded */
          _varlst = omc_List_map1r(threadData, _vlst, boxvar_BackendVariable_getVarAt, _vars);

          _eqnlst = omc_BackendEquation_getList(threadData, _elst, _eqns);

          tmpMeta21 = mmc_mk_box2(0, _eqnlst, _varlst);
          tmpMeta20 = mmc_mk_cons(tmpMeta21, MMC_REFSTRUCTLIT(mmc_nil));
          _result = listAppend(_inAccum, tmpMeta20);
          /* Tail recursive call */
          _inComps = _rest;
          _inAccum = _result;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          goto tmp3_done;
        }
        case 3: {
          modelica_metatype tmpMeta22;
          modelica_metatype tmpMeta23;
          modelica_metatype tmpMeta24;
          modelica_integer tmp25;
          modelica_metatype tmpMeta26;
          modelica_metatype tmpMeta27;
          modelica_metatype tmpMeta28;
          modelica_metatype tmpMeta29;
          if (listEmpty(tmp4_1)) goto tmp3_end;
          tmpMeta22 = MMC_CAR(tmp4_1);
          tmpMeta23 = MMC_CDR(tmp4_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta22,2,2) == 0) goto tmp3_end;
          tmpMeta24 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 2));
          tmp25 = mmc_unbox_integer(tmpMeta24);
          tmpMeta26 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 3));
          _e = tmp25  /* pattern as ty=Integer */;
          _vlst = tmpMeta26;
          _rest = tmpMeta23;
          /* Pattern matching succeeded */
          _varlst = omc_List_map1r(threadData, _vlst, boxvar_BackendVariable_getVarAt, _vars);

          _eqn = omc_BackendEquation_get(threadData, _eqns, _e);

          tmpMeta28 = mmc_mk_cons(_eqn, MMC_REFSTRUCTLIT(mmc_nil));
          tmpMeta29 = mmc_mk_box2(0, tmpMeta28, _varlst);
          tmpMeta27 = mmc_mk_cons(tmpMeta29, MMC_REFSTRUCTLIT(mmc_nil));
          _result = listAppend(_inAccum, tmpMeta27);
          /* Tail recursive call */
          _inComps = _rest;
          _inAccum = _result;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          goto tmp3_done;
        }
        case 4: {
          modelica_metatype tmpMeta30;
          modelica_metatype tmpMeta31;
          modelica_metatype tmpMeta32;
          modelica_integer tmp33;
          modelica_metatype tmpMeta34;
          modelica_metatype tmpMeta35;
          modelica_metatype tmpMeta36;
          modelica_metatype tmpMeta37;
          if (listEmpty(tmp4_1)) goto tmp3_end;
          tmpMeta30 = MMC_CAR(tmp4_1);
          tmpMeta31 = MMC_CDR(tmp4_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta30,6,2) == 0) goto tmp3_end;
          tmpMeta32 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta30), 2));
          tmp33 = mmc_unbox_integer(tmpMeta32);
          tmpMeta34 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta30), 3));
          _e = tmp33  /* pattern as ty=Integer */;
          _vlst = tmpMeta34;
          _rest = tmpMeta31;
          /* Pattern matching succeeded */
          _varlst = omc_List_map1r(threadData, _vlst, boxvar_BackendVariable_getVarAt, _vars);

          _eqn = omc_BackendEquation_get(threadData, _eqns, _e);

          tmpMeta36 = mmc_mk_cons(_eqn, MMC_REFSTRUCTLIT(mmc_nil));
          tmpMeta37 = mmc_mk_box2(0, tmpMeta36, _varlst);
          tmpMeta35 = mmc_mk_cons(tmpMeta37, MMC_REFSTRUCTLIT(mmc_nil));
          _result = listAppend(_inAccum, tmpMeta35);
          /* Tail recursive call */
          _inComps = _rest;
          _inAccum = _result;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          goto tmp3_done;
        }
        case 5: {
          modelica_metatype tmpMeta38;
          modelica_metatype tmpMeta39;
          modelica_metatype tmpMeta40;
          modelica_integer tmp41;
          modelica_metatype tmpMeta42;
          modelica_metatype tmpMeta43;
          modelica_metatype tmpMeta44;
          modelica_metatype tmpMeta45;
          if (listEmpty(tmp4_1)) goto tmp3_end;
          tmpMeta38 = MMC_CAR(tmp4_1);
          tmpMeta39 = MMC_CDR(tmp4_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta38,3,2) == 0) goto tmp3_end;
          tmpMeta40 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta38), 2));
          tmp41 = mmc_unbox_integer(tmpMeta40);
          tmpMeta42 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta38), 3));
          _e = tmp41  /* pattern as ty=Integer */;
          _vlst = tmpMeta42;
          _rest = tmpMeta39;
          /* Pattern matching succeeded */
          _varlst = omc_List_map1r(threadData, _vlst, boxvar_BackendVariable_getVarAt, _vars);

          _eqn = omc_BackendEquation_get(threadData, _eqns, _e);

          tmpMeta44 = mmc_mk_cons(_eqn, MMC_REFSTRUCTLIT(mmc_nil));
          tmpMeta45 = mmc_mk_box2(0, tmpMeta44, _varlst);
          tmpMeta43 = mmc_mk_cons(tmpMeta45, MMC_REFSTRUCTLIT(mmc_nil));
          _result = listAppend(_inAccum, tmpMeta43);
          /* Tail recursive call */
          _inComps = _rest;
          _inAccum = _result;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          goto tmp3_done;
        }
        case 6: {
          modelica_metatype tmpMeta46;
          modelica_metatype tmpMeta47;
          modelica_metatype tmpMeta48;
          modelica_integer tmp49;
          modelica_metatype tmpMeta50;
          modelica_metatype tmpMeta51;
          modelica_metatype tmpMeta52;
          modelica_metatype tmpMeta53;
          if (listEmpty(tmp4_1)) goto tmp3_end;
          tmpMeta46 = MMC_CAR(tmp4_1);
          tmpMeta47 = MMC_CDR(tmp4_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta46,4,2) == 0) goto tmp3_end;
          tmpMeta48 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta46), 2));
          tmp49 = mmc_unbox_integer(tmpMeta48);
          tmpMeta50 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta46), 3));
          _e = tmp49  /* pattern as ty=Integer */;
          _vlst = tmpMeta50;
          _rest = tmpMeta47;
          /* Pattern matching succeeded */
          _varlst = omc_List_map1r(threadData, _vlst, boxvar_BackendVariable_getVarAt, _vars);

          _eqn = omc_BackendEquation_get(threadData, _eqns, _e);

          tmpMeta52 = mmc_mk_cons(_eqn, MMC_REFSTRUCTLIT(mmc_nil));
          tmpMeta53 = mmc_mk_box2(0, tmpMeta52, _varlst);
          tmpMeta51 = mmc_mk_cons(tmpMeta53, MMC_REFSTRUCTLIT(mmc_nil));
          _result = listAppend(_inAccum, tmpMeta51);
          /* Tail recursive call */
          _inComps = _rest;
          _inAccum = _result;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          goto tmp3_done;
        }
        case 7: {
          modelica_metatype tmpMeta54;
          modelica_metatype tmpMeta55;
          modelica_metatype tmpMeta56;
          modelica_integer tmp57;
          modelica_metatype tmpMeta58;
          modelica_metatype tmpMeta59;
          modelica_metatype tmpMeta60;
          modelica_metatype tmpMeta61;
          if (listEmpty(tmp4_1)) goto tmp3_end;
          tmpMeta54 = MMC_CAR(tmp4_1);
          tmpMeta55 = MMC_CDR(tmp4_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta54,5,2) == 0) goto tmp3_end;
          tmpMeta56 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta54), 2));
          tmp57 = mmc_unbox_integer(tmpMeta56);
          tmpMeta58 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta54), 3));
          _e = tmp57  /* pattern as ty=Integer */;
          _vlst = tmpMeta58;
          _rest = tmpMeta55;
          /* Pattern matching succeeded */
          _varlst = omc_List_map1r(threadData, _vlst, boxvar_BackendVariable_getVarAt, _vars);

          _eqn = omc_BackendEquation_get(threadData, _eqns, _e);

          tmpMeta60 = mmc_mk_cons(_eqn, MMC_REFSTRUCTLIT(mmc_nil));
          tmpMeta61 = mmc_mk_box2(0, tmpMeta60, _varlst);
          tmpMeta59 = mmc_mk_cons(tmpMeta61, MMC_REFSTRUCTLIT(mmc_nil));
          _result = listAppend(_inAccum, tmpMeta59);
          /* Tail recursive call */
          _inComps = _rest;
          _inAccum = _result;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          goto tmp3_done;
        }
        case 8: {
          modelica_metatype tmpMeta62;
          modelica_metatype tmpMeta63;
          modelica_metatype tmpMeta64;
          modelica_metatype tmpMeta65;
          modelica_metatype tmpMeta66;
          modelica_metatype tmpMeta67;
          modelica_metatype tmpMeta68;
          modelica_metatype tmpMeta69;
          if (listEmpty(tmp4_1)) goto tmp3_end;
          tmpMeta62 = MMC_CAR(tmp4_1);
          tmpMeta63 = MMC_CDR(tmp4_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta62,7,4) == 0) goto tmp3_end;
          tmpMeta64 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta62), 2));
          tmpMeta65 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta64), 2));
          tmpMeta66 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta64), 3));
          tmpMeta67 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta64), 4));
          
          _vlst = tmpMeta65;
          _elst = tmpMeta66;
          _innerEquations = tmpMeta67;
          _rest = tmpMeta63;
          /* Pattern matching succeeded */
          _elst1 = omc_List_map__3(threadData, _innerEquations, boxvar_BackendDAEUtil_getEqnAndVarsFromInnerEquation ,&_vlst1Lst ,NULL);

          _vlst1 = omc_List_flatten(threadData, _vlst1Lst);

          _varlst1 = omc_List_map1r(threadData, _vlst1, boxvar_BackendVariable_getVarAt, _vars);

          _varlst = omc_List_map1r(threadData, _vlst, boxvar_BackendVariable_getVarAt, _vars);

          _varlst = listAppend(_varlst1, _varlst);

          _eqnlst1 = omc_BackendEquation_getList(threadData, _elst1, _eqns);

          _eqnlst = omc_BackendEquation_getList(threadData, _elst, _eqns);

          _eqnlst = listAppend(_eqnlst1, _eqnlst);

          tmpMeta69 = mmc_mk_box2(0, _eqnlst, _varlst);
          tmpMeta68 = mmc_mk_cons(tmpMeta69, MMC_REFSTRUCTLIT(mmc_nil));
          _result = listAppend(_inAccum, tmpMeta68);
          /* Tail recursive call */
          _inComps = _rest;
          _inAccum = _result;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          goto tmp3_done;
        }
        case 9: {
          modelica_metatype tmpMeta70;
          modelica_metatype tmpMeta71;
          modelica_boolean tmp72;
          if (listEmpty(tmp4_1)) goto tmp3_end;
          tmpMeta70 = MMC_CAR(tmp4_1);
          tmpMeta71 = MMC_CDR(tmp4_1);
          /* Pattern matching succeeded */
          /* Pattern-matching assignment */
          tmp72 = omc_Flags_isSet(threadData, _OMC_LIT198);
          if (1 /* true */ != tmp72) goto goto_2;

          omc_Debug_traceln(threadData, _OMC_LIT199);
          goto goto_2;
          goto tmp3_done;
        }
        }
        goto tmp3_end;
        tmp3_end: ;
      }
      goto goto_2;
      goto_2:;
      MMC_THROW_INTERNAL();
      goto tmp3_done;
      tmp3_done:;
    }
  }
  _outEqnsVarsLst = tmpMeta1;
  _return: OMC_LABEL_UNUSED
  return _outEqnsVarsLst;
}

PROTECTED_FUNCTION_STATIC modelica_metatype omc_XMLDump_getOrderedEqsandVars(threadData_t *threadData, modelica_metatype _syst, modelica_metatype _inEqnsVars)
{
  modelica_metatype _outEqnsVars = NULL;
  modelica_metatype _eqnsl = NULL;
  modelica_metatype _varlst = NULL;
  modelica_metatype _comps = NULL;
  modelica_metatype _eqns = NULL;
  modelica_metatype _vars = NULL;
  modelica_metatype tmpMeta1;
  modelica_metatype tmpMeta2;
  modelica_metatype tmpMeta3;
  modelica_metatype tmpMeta4;
  modelica_metatype tmpMeta5;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outEqnsVars has no default value.
  // _eqnsl has no default value.
  // _varlst has no default value.
  // _comps has no default value.
  // _eqns has no default value.
  // _vars has no default value.
  /* Pattern-matching assignment */
  tmpMeta1 = _syst;
  tmpMeta2 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 2));
  tmpMeta3 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 3));
  tmpMeta4 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 7));
  if (mmc__uniontype__metarecord__typedef__equal(tmpMeta4,1,3) == 0) MMC_THROW_INTERNAL();
  tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta4), 4));
  _vars = tmpMeta2;
  _eqns = tmpMeta3;
  _comps = tmpMeta5;

  _outEqnsVars = omc_XMLDump_getOrderedEqs2(threadData, _comps, _eqns, _vars, _inEqnsVars);
  _return: OMC_LABEL_UNUSED
  return _outEqnsVars;
}

PROTECTED_FUNCTION_STATIC modelica_metatype omc_XMLDump_getEqsList(threadData_t *threadData, modelica_metatype _syst, modelica_metatype _inEqns)
{
  modelica_metatype _outEqns = NULL;
  modelica_metatype _eqnsl = NULL;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outEqns has no default value.
  // _eqnsl has no default value.
  _eqnsl = omc_BackendEquation_equationList(threadData, omc_BackendEquation_getEqnsFromEqSystem(threadData, _syst));

  _outEqns = listAppend(_inEqns, _eqnsl);
  _return: OMC_LABEL_UNUSED
  return _outEqns;
}

PROTECTED_FUNCTION_STATIC modelica_metatype omc_XMLDump_getOrderedVars(threadData_t *threadData, modelica_metatype _syst, modelica_metatype _inVars)
{
  modelica_metatype _outVars = NULL;
  modelica_metatype _vars = NULL;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outVars has no default value.
  // _vars has no default value.
  _vars = omc_BackendVariable_varList(threadData, omc_BackendVariable_daeVars(threadData, _syst));

  _outVars = listAppend(_inVars, _vars);
  _return: OMC_LABEL_UNUSED
  return _outVars;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpEventInfo(threadData_t *threadData, modelica_metatype _inEventInfo, modelica_boolean _addMML)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _inEventInfo;
    {
      modelica_metatype _timeEvents = NULL;
      modelica_metatype _zc = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _timeEvents has no default value.
      // _zc has no default value.
      tmp3 = 0;
      for (; tmp3 < 1; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          
          _timeEvents = tmpMeta5;
          _zc = tmpMeta6;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpTimeEvents(threadData, _timeEvents, _OMC_LIT200, _addMML);

          omc_XMLDump_dumpZeroCrossing(threadData, omc_ZeroCrossings_toList(threadData, _zc), _OMC_LIT201, _addMML);
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpEventInfo(threadData_t *threadData, modelica_metatype _inEventInfo, modelica_metatype _addMML)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_addMML);
  omc_XMLDump_dumpEventInfo(threadData, _inEventInfo, tmp1);
  return;
}

DLLDirection
void omc_XMLDump_dumpBackendDAE(threadData_t *threadData, modelica_metatype _inBackendDAE, modelica_boolean _addOriginalAdjacencyMatrix, modelica_boolean _addSolvingInfo, modelica_boolean _addMathMLCode, modelica_boolean _dumpResiduals, modelica_boolean _dumpSolvedEquations)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_metatype tmp3_1;volatile modelica_boolean tmp3_2;volatile modelica_boolean tmp3_3;volatile modelica_boolean tmp3_4;volatile modelica_boolean tmp3_5;volatile modelica_boolean tmp3_6;
    tmp3_1 = _inBackendDAE;
    tmp3_2 = _addOriginalAdjacencyMatrix;
    tmp3_3 = _addSolvingInfo;
    tmp3_4 = _addMathMLCode;
    tmp3_5 = _dumpResiduals;
    tmp3_6 = _dumpSolvedEquations;
    {
      modelica_metatype _vars = NULL;
      modelica_metatype _knvars = NULL;
      modelica_metatype _extvars = NULL;
      modelica_metatype _aliasvars = NULL;
      modelica_metatype _vars_knownVars = NULL;
      modelica_metatype _crefIdxLstArr_knownVars = NULL;
      modelica_metatype _vars_externalObject = NULL;
      modelica_metatype _crefIdxLstArr_externalObject = NULL;
      modelica_metatype _vars_aliasVars = NULL;
      modelica_metatype _crefIdxLstArr_aliasVars = NULL;
      modelica_metatype _extObjCls = NULL;
      modelica_metatype _eqnsl = NULL;
      modelica_metatype _reqnsl = NULL;
      modelica_metatype _ieqnsl = NULL;
      modelica_metatype _reqns = NULL;
      modelica_metatype _ieqns = NULL;
      modelica_metatype _constrs = NULL;
      modelica_metatype _functionsElems = NULL;
      modelica_boolean _addOrInMatrix;
      modelica_boolean _addSolInfo;
      modelica_boolean _addMML;
      modelica_boolean _dumpRes;
      modelica_metatype _systs = NULL;
      modelica_metatype _funcs = NULL;
      modelica_metatype _eqnsVarsinOrderLst = NULL;
      modelica_metatype _eventInfo = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _vars has no default value.
      // _knvars has no default value.
      // _extvars has no default value.
      // _aliasvars has no default value.
      // _vars_knownVars has no default value.
      // _crefIdxLstArr_knownVars has no default value.
      // _vars_externalObject has no default value.
      // _crefIdxLstArr_externalObject has no default value.
      // _vars_aliasVars has no default value.
      // _crefIdxLstArr_aliasVars has no default value.
      // _extObjCls has no default value.
      // _eqnsl has no default value.
      // _reqnsl has no default value.
      // _ieqnsl has no default value.
      // _reqns has no default value.
      // _ieqns has no default value.
      // _constrs has no default value.
      // _functionsElems has no default value.
      // _addOrInMatrix has no default value.
      // _addSolInfo has no default value.
      // _addMML has no default value.
      // _dumpRes has no default value.
      // _systs has no default value.
      // _funcs has no default value.
      // _eqnsVarsinOrderLst has no default value.
      // _eventInfo has no default value.
      tmp3 = 0;
      MMC_TRY_INTERNAL(mmc_jumper)
      tmp2_top:
      threadData->mmc_jumper = &new_mmc_jumper;
      for (; tmp3 < 3; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          modelica_metatype tmpMeta8;
          modelica_metatype tmpMeta9;
          modelica_metatype tmpMeta10;
          modelica_metatype tmpMeta11;
          modelica_metatype tmpMeta12;
          modelica_metatype tmpMeta13;
          modelica_metatype tmpMeta14;
          modelica_metatype tmpMeta15;
          modelica_metatype tmpMeta16;
          modelica_metatype tmpMeta17;
          modelica_metatype tmpMeta18;
          modelica_metatype tmpMeta19;
          modelica_metatype tmpMeta20;
          if (0 /* false */ != tmp3_6) goto tmp2_end;
          tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta6 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
          tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta7), 2));
          tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 4));
          tmpMeta10 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta9), 2));
          tmpMeta11 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 5));
          tmpMeta12 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta11), 2));
          tmpMeta13 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 6));
          tmpMeta14 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 8));
          tmpMeta15 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 12));
          tmpMeta16 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 13));
          tmpMeta17 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 14));
          
          _systs = tmpMeta5;
          _vars_knownVars = tmpMeta7;
          _crefIdxLstArr_knownVars = tmpMeta8;
          _vars_externalObject = tmpMeta9;
          _crefIdxLstArr_externalObject = tmpMeta10;
          _vars_aliasVars = tmpMeta11;
          _crefIdxLstArr_aliasVars = tmpMeta12;
          _ieqns = tmpMeta13;
          _constrs = tmpMeta14;
          _funcs = tmpMeta15;
          _eventInfo = tmpMeta16;
          _extObjCls = tmpMeta17;
          _addOrInMatrix = tmp3_2;
          _addSolInfo = tmp3_3;
          _addMML = tmp3_4;
          _dumpRes = tmp3_5;
          tmp3 += 1; /* Pattern matching succeeded; we may skip some cases if we fail */
          _knvars = omc_BackendVariable_varList(threadData, _vars_knownVars);

          _extvars = omc_BackendVariable_varList(threadData, _vars_externalObject);

          _aliasvars = omc_BackendVariable_varList(threadData, _vars_aliasVars);

          _reqns = omc_BackendDAEUtil_collapseRemovedEqs(threadData, _inBackendDAE);

          omc_Print_printBuf(threadData, _OMC_LIT202);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT203);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT204, _OMC_LIT51, intString(mmc_unbox_integer(omc_List_fold(threadData, omc_List_map(threadData, _systs, boxvar_BackendDAEUtil_systemSize), boxvar_intAdd, mmc_mk_integer(((modelica_integer) 0)))) + listLength(_knvars) + listLength(_extvars) + listLength(_aliasvars)));

          tmpMeta18 = MMC_REFSTRUCTLIT(mmc_nil);
          _vars = omc_List_fold(threadData, _systs, boxvar_XMLDump_getOrderedVars, tmpMeta18);

          tmpMeta19 = MMC_REFSTRUCTLIT(mmc_nil);
          omc_XMLDump_dumpVars(threadData, _vars, arrayCreate(((modelica_integer) 1), tmpMeta19), _OMC_LIT205, _addMML);

          omc_XMLDump_dumpVars(threadData, _knvars, _crefIdxLstArr_knownVars, _OMC_LIT206, _addMML);

          omc_XMLDump_dumpVars(threadData, _extvars, _crefIdxLstArr_externalObject, _OMC_LIT207, _addMML);

          omc_XMLDump_dumpVars(threadData, _aliasvars, _crefIdxLstArr_aliasVars, _OMC_LIT208, _addMML);

          omc_XMLDump_dumpExtObjCls(threadData, _extObjCls, _OMC_LIT209);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT204);

          tmpMeta20 = MMC_REFSTRUCTLIT(mmc_nil);
          _eqnsl = omc_List_fold(threadData, _systs, boxvar_XMLDump_getEqsList, tmpMeta20);

          omc_XMLDump_dumpEqns(threadData, _eqnsl, _OMC_LIT210, _addMML, _dumpRes, 0 /* false */);

          _reqnsl = omc_BackendEquation_equationList(threadData, _reqns);

          omc_XMLDump_dumpEqns(threadData, _reqnsl, _OMC_LIT211, _addMML, _dumpRes, 0 /* false */);

          _ieqnsl = omc_BackendEquation_equationList(threadData, _ieqns);

          omc_XMLDump_dumpEqns(threadData, _ieqnsl, _OMC_LIT212, _addMML, _dumpRes, 0 /* false */);

          omc_XMLDump_dumpEventInfo(threadData, _eventInfo, _addMML);

          omc_XMLDump_dumpConstraints(threadData, _constrs);

          _functionsElems = omc_DAEUtil_getFunctionList(threadData, _funcs, 0 /* false */);

          omc_XMLDump_dumpFunctions(threadData, _functionsElems);

          omc_XMLDump_dumpSolvingInfo(threadData, _addOrInMatrix, _addSolInfo, _inBackendDAE);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT213);
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta21;
          modelica_metatype tmpMeta22;
          modelica_metatype tmpMeta23;
          modelica_metatype tmpMeta24;
          modelica_metatype tmpMeta25;
          modelica_metatype tmpMeta26;
          modelica_metatype tmpMeta27;
          modelica_metatype tmpMeta28;
          modelica_metatype tmpMeta29;
          modelica_metatype tmpMeta30;
          modelica_metatype tmpMeta31;
          modelica_metatype tmpMeta32;
          modelica_metatype tmpMeta33;
          modelica_metatype tmpMeta34;
          modelica_metatype tmpMeta35;
          modelica_metatype tmpMeta36;
          if (1 /* true */ != tmp3_6) goto tmp2_end;
          tmpMeta21 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmpMeta22 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 3));
          tmpMeta23 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 2));
          tmpMeta24 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta23), 2));
          tmpMeta25 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 4));
          tmpMeta26 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta25), 2));
          tmpMeta27 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 5));
          tmpMeta28 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta27), 2));
          tmpMeta29 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 6));
          tmpMeta30 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 8));
          tmpMeta31 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 12));
          tmpMeta32 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 13));
          tmpMeta33 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta22), 14));
          
          _systs = tmpMeta21;
          _vars_knownVars = tmpMeta23;
          _crefIdxLstArr_knownVars = tmpMeta24;
          _vars_externalObject = tmpMeta25;
          _crefIdxLstArr_externalObject = tmpMeta26;
          _vars_aliasVars = tmpMeta27;
          _crefIdxLstArr_aliasVars = tmpMeta28;
          _ieqns = tmpMeta29;
          _constrs = tmpMeta30;
          _funcs = tmpMeta31;
          _eventInfo = tmpMeta32;
          _extObjCls = tmpMeta33;
          _addOrInMatrix = tmp3_2;
          _addSolInfo = tmp3_3;
          _addMML = tmp3_4;
          _dumpRes = tmp3_5;
          /* Pattern matching succeeded */
          _knvars = omc_BackendVariable_varList(threadData, _vars_knownVars);

          _extvars = omc_BackendVariable_varList(threadData, _vars_externalObject);

          _aliasvars = omc_BackendVariable_varList(threadData, _vars_aliasVars);

          _reqns = omc_BackendDAEUtil_collapseRemovedEqs(threadData, _inBackendDAE);

          omc_Print_printBuf(threadData, _OMC_LIT202);

          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT203);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT204, _OMC_LIT51, intString(mmc_unbox_integer(omc_List_fold(threadData, omc_List_map(threadData, _systs, boxvar_BackendDAEUtil_systemSize), boxvar_intAdd, mmc_mk_integer(((modelica_integer) 0)))) + listLength(_knvars) + listLength(_extvars) + listLength(_aliasvars)));

          tmpMeta34 = MMC_REFSTRUCTLIT(mmc_nil);
          _vars = omc_List_fold(threadData, _systs, boxvar_XMLDump_getOrderedVars, tmpMeta34);

          tmpMeta35 = MMC_REFSTRUCTLIT(mmc_nil);
          omc_XMLDump_dumpVars(threadData, _vars, arrayCreate(((modelica_integer) 1), tmpMeta35), _OMC_LIT205, _addMML);

          omc_XMLDump_dumpVars(threadData, _knvars, _crefIdxLstArr_knownVars, _OMC_LIT206, _addMML);

          omc_XMLDump_dumpVars(threadData, _extvars, _crefIdxLstArr_externalObject, _OMC_LIT207, _addMML);

          omc_XMLDump_dumpVars(threadData, _aliasvars, _crefIdxLstArr_aliasVars, _OMC_LIT208, _addMML);

          omc_XMLDump_dumpExtObjCls(threadData, _extObjCls, _OMC_LIT209);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT204);

          tmpMeta36 = MMC_REFSTRUCTLIT(mmc_nil);
          _eqnsVarsinOrderLst = omc_List_fold(threadData, _systs, boxvar_XMLDump_getOrderedEqsandVars, tmpMeta36);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT210, _OMC_LIT51, intString(listLength(_eqnsVarsinOrderLst)));

          omc_XMLDump_dumpSolvedEqns(threadData, _eqnsVarsinOrderLst, ((modelica_integer) 1), _OMC_LIT210, _addMML, _dumpRes, 1 /* true */);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT210);

          _reqnsl = omc_BackendEquation_equationList(threadData, _reqns);

          omc_XMLDump_dumpEqns(threadData, _reqnsl, _OMC_LIT211, _addMML, _dumpRes, 0 /* false */);

          _ieqnsl = omc_BackendEquation_equationList(threadData, _ieqns);

          omc_XMLDump_dumpEqns(threadData, _ieqnsl, _OMC_LIT212, _addMML, _dumpRes, 0 /* false */);

          omc_XMLDump_dumpEventInfo(threadData, _eventInfo, _addMML);

          omc_XMLDump_dumpConstraints(threadData, _constrs);

          _functionsElems = omc_DAEUtil_getFunctionList(threadData, _funcs, 0 /* false */);

          omc_XMLDump_dumpFunctions(threadData, _functionsElems);

          omc_XMLDump_dumpSolvingInfo(threadData, _addOrInMatrix, _addSolInfo, _inBackendDAE);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT213);
          goto tmp2_done;
        }
        case 2: {
          
          /* Pattern matching succeeded */
          omc_Error_addMessage(threadData, _OMC_LIT42, _OMC_LIT215);
          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 < 3) {
        goto tmp2_top;
      }
      MMC_THROW_INTERNAL();
      tmp2_done2:;
    }
  }
  ;
  _return: OMC_LABEL_UNUSED
  return;
}
void boxptr_XMLDump_dumpBackendDAE(threadData_t *threadData, modelica_metatype _inBackendDAE, modelica_metatype _addOriginalAdjacencyMatrix, modelica_metatype _addSolvingInfo, modelica_metatype _addMathMLCode, modelica_metatype _dumpResiduals, modelica_metatype _dumpSolvedEquations)
{
  modelica_integer tmp1;
  modelica_integer tmp2;
  modelica_integer tmp3;
  modelica_integer tmp4;
  modelica_integer tmp5;
  tmp1 = mmc_unbox_integer(_addOriginalAdjacencyMatrix);
  tmp2 = mmc_unbox_integer(_addSolvingInfo);
  tmp3 = mmc_unbox_integer(_addMathMLCode);
  tmp4 = mmc_unbox_integer(_dumpResiduals);
  tmp5 = mmc_unbox_integer(_dumpSolvedEquations);
  omc_XMLDump_dumpBackendDAE(threadData, _inBackendDAE, tmp1, tmp2, tmp3, tmp4, tmp5);
  return;
}

DLLDirection
modelica_metatype omc_XMLDump_dumpDAEXML(threadData_t *threadData, modelica_metatype _inDAE)
{
  modelica_metatype _outDAE = NULL;
  modelica_string _fileNamePrefix = NULL;
  modelica_metatype tmpMeta1;
  modelica_metatype tmpMeta2;
  modelica_metatype tmpMeta3;
  modelica_metatype tmpMeta4;
  modelica_metatype tmpMeta5;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  _outDAE = _inDAE;
  // _fileNamePrefix has no default value.
  /* Pattern-matching assignment */
  tmpMeta1 = _inDAE;
  tmpMeta2 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 3));
  tmpMeta3 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta2), 17));
  tmpMeta4 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta3), 3));
  _fileNamePrefix = tmpMeta4;

  omc_Print_clearBuf(threadData);

  omc_XMLDump_dumpBackendDAE(threadData, _inDAE, 0 /* false */, 0 /* false */, 0 /* false */, 0 /* false */, 0 /* false */);

  tmpMeta5 = stringAppend(_fileNamePrefix,_OMC_LIT216);
  omc_Print_writeBuf(threadData, tmpMeta5);

  omc_Print_clearBuf(threadData);
  _return: OMC_LABEL_UNUSED
  return _outDAE;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpDAEInstDims2(threadData_t *threadData, modelica_metatype _arry_Dim)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _arry_Dim;
    {
      modelica_metatype _lDim = NULL;
      modelica_metatype _dim = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _lDim has no default value.
      // _dim has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          _dim = tmpMeta5;
          _lDim = tmpMeta6;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT51);

          omc_XMLDump_dumpDimension(threadData, _dim);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT51);

          /* Tail recursive call */
          _arry_Dim = _lDim;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          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;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpDAEInstDims(threadData_t *threadData, modelica_metatype _arry_Dim, modelica_string _Content)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_metatype tmp3_1;
    tmp3_1 = _arry_Dim;
    {
      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: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTag(threadData, _Content);

          omc_XMLDump_dumpDAEInstDims2(threadData, _arry_Dim);

          omc_XMLDump_dumpStrCloseTag(threadData, _Content);
          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_XMLDump_dumpCrefIdxLst2(threadData_t *threadData, modelica_metatype _crefIdxLst)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _crefIdxLst;
    {
      modelica_metatype _crefIndexList = NULL;
      modelica_integer _index_c;
      modelica_metatype _cref_c = NULL;
      modelica_string _cref = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _crefIndexList has no default value.
      // _index_c has no default value.
      // _cref_c has no default value.
      // _cref has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          modelica_metatype tmpMeta8;
          modelica_integer tmp9;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 2));
          tmpMeta8 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 3));
          tmp9 = mmc_unbox_integer(tmpMeta8);
          _cref_c = tmpMeta7;
          _index_c = tmp9  /* pattern as ty=Integer */;
          _crefIndexList = tmpMeta6;
          /* Pattern matching succeeded */
          _cref = omc_ComponentReference_crefStr(threadData, _cref_c);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT217, _OMC_LIT5, intString(_index_c));

          omc_Print_printBuf(threadData, _cref);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT217);

          /* Tail recursive call */
          _crefIdxLst = _crefIndexList;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          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;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpCrefIdxLst(threadData_t *threadData, modelica_metatype _crefIdxLst, modelica_string _Content)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _crefIdxLst;
    {
      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;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTag(threadData, _Content);

          omc_XMLDump_dumpCrefIdxLst2(threadData, _crefIdxLst);

          omc_XMLDump_dumpStrCloseTag(threadData, _Content);
          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;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpCrefIdxLstArr(threadData_t *threadData, modelica_metatype _crefIdxLstArr, modelica_string _Content, modelica_integer _inInteger)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    {
      modelica_string _error_msg = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _error_msg has no default value.
      tmp3 = 0;
      MMC_TRY_INTERNAL(mmc_jumper)
      tmp2_top:
      threadData->mmc_jumper = &new_mmc_jumper;
      for (; tmp3 < 3; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          /* Pattern matching succeeded */
          /* Check guard condition after assignments */
          if (!listEmpty(arrayGet(_crefIdxLstArr,_inInteger) /* DAE.ASUB */)) goto tmp2_end;
          goto tmp2_done;
        }
        case 1: {
          /* Pattern matching succeeded */
          omc_XMLDump_dumpCrefIdxLst(threadData, arrayGet(_crefIdxLstArr,_inInteger) /* DAE.ASUB */, _Content);
          goto tmp2_done;
        }
        case 2: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          /* Pattern matching succeeded */
          _error_msg = _OMC_LIT218;

          tmpMeta5 = stringAppend(_error_msg,intString(_inInteger));
          _error_msg = tmpMeta5;

          tmpMeta6 = mmc_mk_cons(_error_msg, MMC_REFSTRUCTLIT(mmc_nil));
          omc_Error_addMessage(threadData, _OMC_LIT42, tmpMeta6);
          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 < 3) {
        goto tmp2_top;
      }
      MMC_THROW_INTERNAL();
      tmp2_done2:;
    }
  }
  ;
  _return: OMC_LABEL_UNUSED
  return;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpCrefIdxLstArr(threadData_t *threadData, modelica_metatype _crefIdxLstArr, modelica_metatype _Content, modelica_metatype _inInteger)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_inInteger);
  omc_XMLDump_dumpCrefIdxLstArr(threadData, _crefIdxLstArr, _Content, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpComponents2(threadData_t *threadData, modelica_metatype _inIntegerLstLst, modelica_integer _i, modelica_integer _offset)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _inIntegerLstLst;
    {
      modelica_metatype _l = NULL;
      modelica_metatype _lst = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _l has no default value.
      // _lst has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          _l = tmpMeta5;
          _lst = tmpMeta6;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT219, _OMC_LIT5, intString(_i));

          omc_XMLDump_dumpBltInvolvedEquations(threadData, _l, _offset);

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT219);

          /* Tail recursive call */
          _inIntegerLstLst = _lst;
          _i = ((modelica_integer) 1) + _i;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpComponents2(threadData_t *threadData, modelica_metatype _inIntegerLstLst, modelica_metatype _i, modelica_metatype _offset)
{
  modelica_integer tmp1;
  modelica_integer tmp2;
  tmp1 = mmc_unbox_integer(_i);
  tmp2 = mmc_unbox_integer(_offset);
  omc_XMLDump_dumpComponents2(threadData, _inIntegerLstLst, tmp1, tmp2);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpComponents1(threadData_t *threadData, modelica_metatype _l, modelica_integer _voffset, modelica_integer _eoffset)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* matchcontinue expression */
    volatile modelica_metatype tmp3_1;
    tmp3_1 = _l;
    {
      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: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          
          /* Pattern matching succeeded */
          omc_XMLDump_dumpComponents2(threadData, _l, ((modelica_integer) 1) + _voffset, _eoffset);
          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 boxptr_XMLDump_dumpComponents1(threadData_t *threadData, modelica_metatype _l, modelica_metatype _voffset, modelica_metatype _eoffset)
{
  modelica_integer tmp1;
  modelica_integer tmp2;
  tmp1 = mmc_unbox_integer(_voffset);
  tmp2 = mmc_unbox_integer(_eoffset);
  omc_XMLDump_dumpComponents1(threadData, _l, tmp1, tmp2);
  return;
}

PROTECTED_FUNCTION_STATIC modelica_metatype omc_XMLDump_dumpComponentsWork(threadData_t *threadData, modelica_metatype _syst, modelica_metatype _shared, modelica_metatype _inOffset)
{
  modelica_metatype _outOffset = NULL;
  modelica_metatype _v1 = NULL;
  modelica_metatype _v2 = NULL;
  modelica_metatype _comps = NULL;
  modelica_integer _voffset;
  modelica_integer _eoffset;
  modelica_metatype tmpMeta1;
  modelica_metatype tmpMeta2;
  modelica_metatype tmpMeta3;
  modelica_metatype tmpMeta4;
  modelica_metatype tmpMeta5;
  modelica_metatype tmpMeta6;
  modelica_metatype tmpMeta7;
  modelica_integer tmp8;
  modelica_metatype tmpMeta9;
  modelica_integer tmp10;
  modelica_metatype tmpMeta11;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outOffset has no default value.
  // _v1 has no default value.
  // _v2 has no default value.
  // _comps has no default value.
  // _voffset has no default value.
  // _eoffset has no default value.
  /* Pattern-matching assignment */
  tmpMeta1 = _syst;
  tmpMeta2 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta1), 7));
  if (mmc__uniontype__metarecord__typedef__equal(tmpMeta2,1,3) == 0) MMC_THROW_INTERNAL();
  tmpMeta3 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta2), 2));
  tmpMeta4 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta2), 3));
  tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta2), 4));
  _v1 = tmpMeta3;
  _v2 = tmpMeta4;
  _comps = tmpMeta5;

  /* Pattern-matching assignment */
  tmpMeta6 = _inOffset;
  tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 1));
  tmp8 = mmc_unbox_integer(tmpMeta7);
  tmpMeta9 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta6), 2));
  tmp10 = mmc_unbox_integer(tmpMeta9);
  _voffset = tmp8  /* pattern as ty=Integer */;
  _eoffset = tmp10  /* pattern as ty=Integer */;

  omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT220);

  omc_XMLDump_dumpComponents1(threadData, _comps, _voffset, _eoffset);

  omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT220);

  tmpMeta11 = mmc_mk_box2(0, mmc_mk_integer(_voffset + arrayLength(_v2)), mmc_mk_integer(_eoffset + arrayLength(_v1)));
  _outOffset = tmpMeta11;
  _return: OMC_LABEL_UNUSED
  return _outOffset;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpComponents(threadData_t *threadData, modelica_metatype _dae)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  omc_XMLDump_dumpStrOpenTag(threadData, _OMC_LIT220);

  omc_BackendDAEUtil_foldEqSystem(threadData, _dae, boxvar_XMLDump_dumpComponentsWork, _OMC_LIT126);

  omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT220);
  _return: OMC_LABEL_UNUSED
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpComment(threadData_t *threadData, modelica_string _inComment)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  omc_Print_printBuf(threadData, _OMC_LIT221);

  omc_Print_printBuf(threadData, omc_Util_xmlEscape(threadData, _inComment));

  omc_Print_printBuf(threadData, _OMC_LIT222);
  _return: OMC_LABEL_UNUSED
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpBindExpression(threadData_t *threadData, modelica_metatype _inOptExpExp, modelica_boolean _addMathMLCode)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _inOptExpExp;
    {
      volatile mmc_switch_type tmp3;
      int tmp4;
      tmp3 = 0;
      for (; tmp3 < 3; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!optionNone(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          if (optionNone(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 1));
          /* Pattern matching succeeded */
          omc_XMLDump_dumpOptExp(threadData, _inOptExpExp, _OMC_LIT223, _addMathMLCode);
          goto tmp2_done;
        }
        case 2: {
          
          /* Pattern matching succeeded */
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpBindExpression(threadData_t *threadData, modelica_metatype _inOptExpExp, modelica_metatype _addMathMLCode)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_addMathMLCode);
  omc_XMLDump_dumpBindExpression(threadData, _inOptExpExp, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpBltInvolvedEquations1(threadData_t *threadData, modelica_metatype _inList, modelica_integer _offset)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _inList;
    {
      modelica_integer _el;
      modelica_metatype _remList = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _el has no default value.
      // _remList has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          modelica_integer tmp7;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          tmp7 = mmc_unbox_integer(tmpMeta5);
          _el = tmp7  /* pattern as ty=Integer */;
          _remList = tmpMeta6;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrTagAttrNoChild(threadData, _OMC_LIT224, _OMC_LIT50, intString(_el + _offset));

          /* Tail recursive call */
          _inList = _remList;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpBltInvolvedEquations1(threadData_t *threadData, modelica_metatype _inList, modelica_metatype _offset)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_offset);
  omc_XMLDump_dumpBltInvolvedEquations1(threadData, _inList, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpBltInvolvedEquations(threadData_t *threadData, modelica_metatype _inComp, modelica_integer _offset)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _inComp;
    {
      modelica_integer _e;
      modelica_metatype _elst = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _e has no default value.
      // _elst has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          modelica_metatype tmpMeta5;
          modelica_integer tmp6;
          if (mmc__uniontype__metarecord__typedef__equal(tmp3_1,0,2) == 0) goto tmp2_end;
          tmpMeta5 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmp3_1), 2));
          tmp6 = mmc_unbox_integer(tmpMeta5);
          
          _e = tmp6  /* pattern as ty=Integer */;
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrTagAttrNoChild(threadData, _OMC_LIT224, _OMC_LIT50, intString(_e + _offset));
          goto tmp2_done;
        }
        case 1: {
          
          /* Pattern matching succeeded */
          _elst = omc_BackendDAETransform_getEquationAndSolvedVarIndxes(threadData, _inComp, NULL);

          omc_XMLDump_dumpBltInvolvedEquations1(threadData, _elst, _offset);
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpBltInvolvedEquations(threadData_t *threadData, modelica_metatype _inComp, modelica_metatype _offset)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_offset);
  omc_XMLDump_dumpBltInvolvedEquations(threadData, _inComp, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpConstraints2(threadData_t *threadData, modelica_metatype _iConstrs, modelica_integer _inConsNo)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;modelica_integer tmp3_2;
    tmp3_1 = _iConstrs;
    tmp3_2 = _inConsNo;
    {
      modelica_metatype _exps = NULL;
      modelica_integer _conNo;
      modelica_integer _conNo_1;
      modelica_metatype _constrs = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _exps has no default value.
      // _conNo has no default value.
      // _conNo_1 has no default value.
      // _constrs has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          modelica_metatype tmpMeta7;
          modelica_metatype tmpMeta8;
          modelica_metatype tmpMeta9;
          modelica_metatype tmpMeta10;
          modelica_metatype tmpMeta11;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          if (mmc__uniontype__metarecord__typedef__equal(tmpMeta5,0,1) == 0) goto tmp2_end;
          tmpMeta7 = MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(tmpMeta5), 2));
          
          _exps = tmpMeta7;
          _constrs = tmpMeta6;
          _conNo = tmp3_2;
          /* Pattern matching succeeded */
          tmpMeta8 = stringAppend(_OMC_LIT227,intString(_conNo));
          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT225, _OMC_LIT226, tmpMeta8);

          tmpMeta10 = mmc_mk_box2(3, &DAE_Constraint_CONSTRAINT__EXPS__desc, _exps);
          tmpMeta11 = mmc_mk_box3(30, &DAE_Element_CONSTRAINT__desc, tmpMeta10, _OMC_LIT230);
          tmpMeta9 = mmc_mk_cons(tmpMeta11, MMC_REFSTRUCTLIT(mmc_nil));
          omc_Print_printBuf(threadData, omc_Util_xmlEscape(threadData, omc_DAEDump_dumpConstraintsStr(threadData, tmpMeta9)));

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT225);

          _conNo_1 = ((modelica_integer) 1) + _conNo;

          /* Tail recursive call */
          _iConstrs = _constrs;
          _inConsNo = _conNo_1;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          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;
}
PROTECTED_FUNCTION_STATIC void boxptr_XMLDump_dumpConstraints2(threadData_t *threadData, modelica_metatype _iConstrs, modelica_metatype _inConsNo)
{
  modelica_integer tmp1;
  tmp1 = mmc_unbox_integer(_inConsNo);
  omc_XMLDump_dumpConstraints2(threadData, _iConstrs, tmp1);
  return;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpConstraints(threadData_t *threadData, modelica_metatype _constrs)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _constrs;
    {
      modelica_integer _len;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _len has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          
          /* Pattern matching succeeded */
          _len = listLength(_constrs);

          omc_XMLDump_dumpStrOpenTagAttr(threadData, _OMC_LIT231, _OMC_LIT51, intString(_len));

          omc_XMLDump_dumpConstraints2(threadData, _constrs, ((modelica_integer) 0));

          omc_XMLDump_dumpStrCloseTag(threadData, _OMC_LIT231);
          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;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpAbsynPathLst2(threadData_t *threadData, modelica_metatype _absynPathLst)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _absynPathLst;
    {
      modelica_metatype _apLst = NULL;
      modelica_metatype _ap = NULL;
      modelica_string _str = NULL;
      volatile mmc_switch_type tmp3;
      int tmp4;
      // _apLst has no default value.
      // _ap has no default value.
      // _str has no default value.
      tmp3 = 0;
      for (; tmp3 < 2; tmp3++) {
        switch (MMC_SWITCH_CAST(tmp3)) {
        case 0: {
          if (!listEmpty(tmp3_1)) goto tmp2_end;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          if (listEmpty(tmp3_1)) goto tmp2_end;
          tmpMeta5 = MMC_CAR(tmp3_1);
          tmpMeta6 = MMC_CDR(tmp3_1);
          _ap = tmpMeta5;
          _apLst = tmpMeta6;
          /* Pattern matching succeeded */
          _str = omc_AbsynUtil_pathStringNoQual(threadData, _ap, _OMC_LIT135, 0 /* false */, 0 /* false */);

          omc_XMLDump_dumpStrTagContent(threadData, _OMC_LIT217, _str);

          /* Tail recursive call */
          _absynPathLst = _apLst;
          goto _tailrecursive;
          /* TODO: Make sure any eventual dead code below is never generated */
          ;
          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;
}

PROTECTED_FUNCTION_STATIC void omc_XMLDump_dumpAbsynPathLst(threadData_t *threadData, modelica_metatype _absynPathLst, modelica_string _Content)
{
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  { /* match expression */
    modelica_metatype tmp3_1;
    tmp3_1 = _absynPathLst;
    {
      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;
          /* Pattern matching succeeded */
          goto tmp2_done;
        }
        case 1: {
          
          /* Pattern matching succeeded */
          omc_XMLDump_dumpStrOpenTag(threadData, _Content);

          omc_XMLDump_dumpAbsynPathLst2(threadData, _absynPathLst);

          omc_XMLDump_dumpStrCloseTag(threadData, _Content);
          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;
}

PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_binopSymbol2(threadData_t *threadData, modelica_metatype _inOperator)
{
  modelica_string _outString = NULL;
  modelica_string tmp1 = 0;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outString has no default value.
  { /* match expression */
    modelica_metatype tmp4_1;
    tmp4_1 = _inOperator;
    {
      modelica_string _error_msg = NULL;
      int tmp4;
      // _error_msg has no default value.
      {
        switch (MMC_SWITCH_CAST(valueConstructor(tmp4_1))) {
        case 3: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT232;
          goto tmp3_done;
        }
        case 4: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT1;
          goto tmp3_done;
        }
        case 5: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT233;
          goto tmp3_done;
        }
        case 6: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT234;
          goto tmp3_done;
        }
        case 7: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT235;
          goto tmp3_done;
        }
        case 10: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT232;
          goto tmp3_done;
        }
        case 11: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT1;
          goto tmp3_done;
        }
        case 14: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT233;
          goto tmp3_done;
        }
        case 17: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT236;
          goto tmp3_done;
        }
        case 18: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT237;
          goto tmp3_done;
        }
        case 19: {
          
          /* Pattern matching succeeded */
          tmp1 = _OMC_LIT234;
          goto tmp3_done;
        }
        default:
        tmp3_default: OMC_LABEL_UNUSED; {
          modelica_metatype tmpMeta5;
          modelica_metatype tmpMeta6;
          
          /* Pattern matching succeeded */
          _error_msg = _OMC_LIT238;

          tmpMeta5 = stringAppend(_error_msg,omc_ExpressionDump_debugBinopSymbol(threadData, _inOperator));
          _error_msg = tmpMeta5;

          tmpMeta6 = mmc_mk_cons(_error_msg, MMC_REFSTRUCTLIT(mmc_nil));
          omc_Error_addMessage(threadData, _OMC_LIT42, tmpMeta6);
          goto goto_2;
          goto tmp3_done;
        }
        }
        goto tmp3_end;
        tmp3_end: ;
      }
      goto goto_2;
      goto_2:;
      MMC_THROW_INTERNAL();
      goto tmp3_done;
      tmp3_done:;
    }
  }
  _outString = tmp1;
  _return: OMC_LABEL_UNUSED
  return _outString;
}

PROTECTED_FUNCTION_STATIC modelica_string omc_XMLDump_binopSymbol(threadData_t *threadData, modelica_metatype _inOperator)
{
  modelica_string _outString = NULL;
  modelica_string tmp1 = 0;
  MMC_SO();
  _tailrecursive: OMC_LABEL_UNUSED
  // _outString has no default value.
  { /* match expression */
    modelica_metatype tmp4_1;
    tmp4_1 = _inOperator;
    {
      modelica_metatype _op = NULL;
      volatile mmc_switch_type tmp4;
      int tmp5;
      // _op has no default value.
      tmp4 = 0;
      for (; tmp4 < 1; tmp4++) {
        switch (MMC_SWITCH_CAST(tmp4)) {
        case 0: {
          
          _op = tmp4_1;
          /* Pattern matching succeeded */
          tmp1 = omc_XMLDump_binopSymbol2(threadData, _op);
          goto tmp3_done;
        }
        }
        goto tmp3_end;
        tmp3_end: ;
      }
      goto goto_2;
      goto_2:;
      MMC_THROW_INTERNAL();
      goto tmp3_done;
      tmp3_done:;
    }
  }
  _outString = tmp1;
  _return: OMC_LABEL_UNUSED
  return _outString;
}

