/* Generated by Nim Compiler v1.9.0 */ #define NIM_INTBITS 32 #define NIM_EmulateOverflowChecks #include "nimbase.h" #include #undef LANGUAGE_C #undef MIPSEB #undef MIPSEL #undef PPC #undef R3000 #undef R4000 #undef i386 #undef linux #undef mips #undef near #undef far #undef powerpc #undef unix #define nimfr_(x, y) #define nimln_(x, y) typedef struct tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q; typedef struct tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA; typedef struct tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg; typedef struct NimStrPayload NimStrPayload; typedef struct NimStringV2 NimStringV2; typedef struct tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA; typedef struct tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA; typedef struct tySequence__xxu3GgaFAGO6lOns9aHaeLQ tySequence__xxu3GgaFAGO6lOns9aHaeLQ; typedef struct tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content; typedef struct tyObject_TIdObj__jPSvrmNCWI4CL3MSWxUHJQ tyObject_TIdObj__jPSvrmNCWI4CL3MSWxUHJQ; typedef struct RootObj RootObj; typedef struct TNimTypeV2 TNimTypeV2; typedef struct tyObject_ItemId__RG5oiYa2xm9bBBKInuP3ECw tyObject_ItemId__RG5oiYa2xm9bBBKInuP3ECw; typedef struct tyObject_TLoc__cQfx3WjJDtozqFtY4RdR9cA tyObject_TLoc__cQfx3WjJDtozqFtY4RdR9cA; typedef struct tyObject_TLib__tP0u9cd1FuZgfCfM3WIm9cRg tyObject_TLib__tP0u9cd1FuZgfCfM3WIm9cRg; typedef struct tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ; typedef struct tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ_Content tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ_Content; struct tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg { NU16 line; NI16 col; NI32 fileIndex; }; typedef NU32 tySet_tyEnum_TNodeFlag__69c8WThOUT3nlaj2cOZ9c2dw; typedef NU8 tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ; struct NimStrPayload { NI cap; NIM_CHAR data[SEQ_DECL_SIZE]; }; struct NimStringV2 { NI len; NimStrPayload* p; }; struct tySequence__xxu3GgaFAGO6lOns9aHaeLQ { NI len; tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content* p; }; struct tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q { tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* typ; tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg info; tySet_tyEnum_TNodeFlag__69c8WThOUT3nlaj2cOZ9c2dw flags; tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ kind; union{ struct {NI64 intVal; } _kind_1; struct {NF floatVal; } _kind_2; struct {NimStringV2 strVal; } _kind_3; struct {tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* sym; } _kind_4; struct {tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA* ident; } _kind_5; struct {tySequence__xxu3GgaFAGO6lOns9aHaeLQ sons; } _kind_6; }; }; struct TNimTypeV2 { void* destructor; NI size; NI16 align; NI16 depth; NU32* display; void* traceImpl; void* typeInfoV1; NI flags; }; struct RootObj { TNimTypeV2* m_type; }; struct tyObject_ItemId__RG5oiYa2xm9bBBKInuP3ECw { NI32 module; NI32 item; }; struct tyObject_TIdObj__jPSvrmNCWI4CL3MSWxUHJQ { RootObj Sup; tyObject_ItemId__RG5oiYa2xm9bBBKInuP3ECw itemId; }; typedef NU8 tyEnum_TSymKind__EmlFK9c4sdJy7UDy5lm8yQQ; typedef NU16 tyEnum_TMagic__mTDI9bmjHUNrwgx3GHm4Krg; typedef NU64 tySet_tyEnum_TSymFlag__TAs9cOBd13PVhEf42OX9cOdg; typedef NU32 tySet_tyEnum_TOption__PrH9cMsvu5oCG0HODAZ3CAg; typedef NU8 tyEnum_TLocKind__iCEcZjTaghPmL3Wx2e5DQw; typedef NU8 tyEnum_TStorageLoc__BKvMXWvKko6Yn5329c9aw9afg; typedef NU16 tySet_tyEnum_TLocFlag__9a7m8BSAfzn6yluCKaq6viw; struct tyObject_TLoc__cQfx3WjJDtozqFtY4RdR9cA { tyEnum_TLocKind__iCEcZjTaghPmL3Wx2e5DQw k; tyEnum_TStorageLoc__BKvMXWvKko6Yn5329c9aw9afg storage; tySet_tyEnum_TLocFlag__9a7m8BSAfzn6yluCKaq6viw flags; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* lode; NimStringV2 r; }; struct tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA { tyObject_TIdObj__jPSvrmNCWI4CL3MSWxUHJQ Sup; tyEnum_TSymKind__EmlFK9c4sdJy7UDy5lm8yQQ kind; union{ struct {tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* gcUnsafetyReason; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* transformedBody; } _kind_1; struct {tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* guard; NI bitsize; NI alignment; } _kind_2; }; tyEnum_TMagic__mTDI9bmjHUNrwgx3GHm4Krg magic; tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* typ; tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA* name; tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg info; tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* owner; tySet_tyEnum_TSymFlag__TAs9cOBd13PVhEf42OX9cOdg flags; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* ast; tySet_tyEnum_TOption__PrH9cMsvu5oCG0HODAZ3CAg options; NI position; NI offset; tyObject_TLoc__cQfx3WjJDtozqFtY4RdR9cA loc; tyObject_TLib__tP0u9cd1FuZgfCfM3WIm9cRg* annex; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* constraint; }; struct tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA { NI id; NimStringV2 s; tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA* next; NI h; }; typedef NU16 tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA; typedef NU8 tyEnum_TNodeFlag__69c8WThOUT3nlaj2cOZ9c2dw; typedef NU8 tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ; typedef NU8 tyEnum_TCallingConvention__XL1p2EKvOAlAHpc68ecZPw; typedef NU64 tySet_tyEnum_TTypeFlag__wRa4s6r4s9cXJ9abWKsrci1Q; struct tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ { NI len; tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ_Content* p; }; struct tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA { tyObject_TIdObj__jPSvrmNCWI4CL3MSWxUHJQ Sup; tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ kind; tyEnum_TCallingConvention__XL1p2EKvOAlAHpc68ecZPw callConv; tySet_tyEnum_TTypeFlag__wRa4s6r4s9cXJ9abWKsrci1Q flags; tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ sons; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n; tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* owner; tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* sym; NI64 size; NI16 align; NI16 paddingAtEnd; tyObject_TLoc__cQfx3WjJDtozqFtY4RdR9cA loc; tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* typeInst; tyObject_ItemId__RG5oiYa2xm9bBBKInuP3ECw uniqueId; }; typedef NU8 tySet_tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ[9]; typedef NU8 tyEnum_TTypeFlag__wRa4s6r4s9cXJ9abWKsrci1Q; #ifndef tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content_PP #define tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content_PP struct tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content { NI cap; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* data[SEQ_DECL_SIZE];}; #endif #ifndef tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content_PP #define tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content_PP struct tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content { NI cap; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* data[SEQ_DECL_SIZE];}; #endif #ifndef tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content_PP #define tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content_PP struct tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content { NI cap; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* data[SEQ_DECL_SIZE];}; #endif #ifndef tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ_Content_PP #define tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ_Content_PP struct tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ_Content { NI cap; tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* data[SEQ_DECL_SIZE];}; #endif static N_INLINE(NIM_BOOL, sameFloatIgnoreNan__trees_59)(NF a, NF b); static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a, NimStringV2 b); static N_INLINE(NIM_BOOL, equalMem__system_1727)(void* a, void* b, NI size); static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size); N_LIB_PRIVATE N_NIMCALL(NimStringV2, comment__ast_1148)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZassertions_13)(NimStringV2* dest); static N_INLINE(NI, len__ast_3325)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent__trees_63)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* a, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* b, NIM_BOOL strictSymEquality); static N_INLINE(NIM_BOOL*, nimErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_3457)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q** dest, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* src); N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA, whichPragma__trees_251)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA, whichKeyword__idents_287)(tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA* id); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_3454)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q** dest); N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_3460)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q** dest, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* src); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, newNodeI__ast_3949)(tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ kind, tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg info); N_LIB_PRIVATE N_NIMCALL(void, add__ast_6233)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* father, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* son); N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_4063)(tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA** dest, tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* src); N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA*, getRoot__trees_397)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(tyEnum_TMagic__mTDI9bmjHUNrwgx3GHm4Krg, getMagic__trees_144)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* op); static N_INLINE(NI, safeLen__ast_3318)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCaseObj__trees_165)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap, NI elemSize, NI elemAlign); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cyclicTreeAux__trees_4)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, tySequence__xxu3GgaFAGO6lOns9aHaeLQ* visited); N_LIB_PRIVATE N_NIMCALL(void, add__ast_4147)(tySequence__xxu3GgaFAGO6lOns9aHaeLQ* x, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* value); N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_3726)(tySequence__xxu3GgaFAGO6lOns9aHaeLQ* dest, tySequence__xxu3GgaFAGO6lOns9aHaeLQ src); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_3723)(tySequence__xxu3GgaFAGO6lOns9aHaeLQ* dest); static N_INLINE(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, pop__trees_32)(tySequence__xxu3GgaFAGO6lOns9aHaeLQ* s); N_LIB_PRIVATE N_NIMCALL(void, shrink__ast_3748)(tySequence__xxu3GgaFAGO6lOns9aHaeLQ* x, NI newLen); N_LIB_PRIVATE N_NIMCALL(void, unnestStmts__trees_346)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* result); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, newNodeI__ast_3953)(tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ kind, tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg info, NI children); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDeepConstExpr__trees_178)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, NIM_BOOL preventInheritance); N_LIB_PRIVATE N_NIMCALL(tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA*, skipTypes__ast_4803)(tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* t, tySet_tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ kinds); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_3543)(tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA** dest); static NIM_CONST tySet_tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ TM__0kvKTJpCwLz5GMPVAM8DVQ_2 = { 0x10, 0x28, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00} ; extern NIM_BOOL nimInErrorMode__system_3994; static N_INLINE(NIM_BOOL, sameFloatIgnoreNan__trees_59)(NF a, NF b) { NIM_BOOL result; NIM_BOOL T1_; union { NF source; NU64 dest; } LOC2; union { NF source; NU64 dest; } LOC3; result = (NIM_BOOL)0; T1_ = (NIM_BOOL)0; LOC2.source = a; LOC3.source = b; T1_ = (LOC2.dest == LOC3.dest); if (T1_) goto LA4_; T1_ = (a == b); LA4_: ; result = T1_; return result; } static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) { int result; result = (int)0; result = memcmp(a, b, ((size_t) (size))); return result; } static N_INLINE(NIM_BOOL, equalMem__system_1727)(void* a, void* b, NI size) { NIM_BOOL result; int T1_; result = (NIM_BOOL)0; T1_ = (int)0; T1_ = nimCmpMem(a, b, size); result = (T1_ == ((NI32)0)); return result; } static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a, NimStringV2 b) { NIM_BOOL result; NI alen; NI blen; { result = (NIM_BOOL)0; alen = a.len; blen = b.len; { if (!(alen == blen)) goto LA3_; { if (!(alen == ((NI)0))) goto LA7_; result = NIM_TRUE; goto BeforeRet_; } LA7_: ; result = equalMem__system_1727(((void*) ((&a.p->data[((NI)0)]))), ((void*) ((&b.p->data[((NI)0)]))), ((NI) (alen))); goto BeforeRet_; } LA3_: ; }BeforeRet_: ; return result; } static N_INLINE(NI, len__ast_3325)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NI result; NI T1_; result = (NI)0; T1_ = (*n)._kind_6.sons.len; result = T1_; return result; } static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) { NIM_BOOL* result; result = (NIM_BOOL*)0; result = (&nimInErrorMode__system_3994); return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent__trees_63)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* a, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* b, NIM_BOOL strictSymEquality) { NIM_BOOL result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; { if (!(a == b)) goto LA3_; result = NIM_TRUE; } goto LA1_; LA3_: ; { NIM_BOOL T6_; NIM_BOOL T7_; T6_ = (NIM_BOOL)0; T7_ = (NIM_BOOL)0; T7_ = !((a == ((tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*) NIM_NIL))); if (!(T7_)) goto LA8_; T7_ = !((b == ((tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*) NIM_NIL))); LA8_: ; T6_ = T7_; if (!(T6_)) goto LA9_; T6_ = ((*a).kind == (*b).kind); LA9_: ; if (!T6_) goto LA10_; switch ((*a).kind) { case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)3): { { if (!strictSymEquality) goto LA15_; result = ((*a)._kind_4.sym == (*b)._kind_4.sym); } goto LA13_; LA15_: ; { result = ((*(*(*a)._kind_4.sym).name).id == (*(*(*b)._kind_4.sym).name).id); } LA13_: ; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)2): { result = ((*(*a)._kind_5.ident).id == (*(*b)._kind_5.ident).id); } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)5) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)15): { result = ((*a)._kind_1.intVal == (*b)._kind_1.intVal); } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)16) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)18): { result = sameFloatIgnoreNan__trees_59((*a)._kind_2.floatVal, (*b)._kind_2.floatVal); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)20) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)22): { result = eqStrings((*a)._kind_3.strVal, (*b)._kind_3.strVal); } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)125): { NimStringV2 colontmpD_; NimStringV2 colontmpD__2; colontmpD_.len = 0; colontmpD_.p = NIM_NIL; colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL; colontmpD_ = comment__ast_1148(a); if (NIM_UNLIKELY(*nimErr_)) goto LA23_; colontmpD__2 = comment__ast_1148(b); if (NIM_UNLIKELY(*nimErr_)) goto LA23_; result = eqStrings(colontmpD_, colontmpD__2); { LA23_:; } { eqdestroy___stdZassertions_13((&colontmpD__2)); eqdestroy___stdZassertions_13((&colontmpD_)); } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)1): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)23): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)4): { result = NIM_TRUE; } break; default: { { NI T30_; NI T31_; T30_ = (NI)0; T30_ = len__ast_3325(a); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; T31_ = (NI)0; T31_ = len__ast_3325(b); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; if (!(T30_ == T31_)) goto LA32_; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3325(a); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; i_2 = ((NI)0); { while (1) { if (!(i_2 < colontmp_)) goto LA36 ; i = i_2; { NIM_BOOL T39_; T39_ = (NIM_BOOL)0; T39_ = exprStructuralEquivalent__trees_63((*a)._kind_6.sons.p->data[i], (*b)._kind_6.sons.p->data[i], strictSymEquality); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; if (!!(T39_)) goto LA40_; goto BeforeRet_; } LA40_: ; i_2 += ((NI)1); } LA36: ; } } result = NIM_TRUE; } LA32_: ; } break; } } goto LA1_; LA10_: ; LA1_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA, whichPragma__trees_251)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA result; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* key; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* T1_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA)0; key = NIM_NIL; T1_ = NIM_NIL; { NIM_BOOL T4_; NI T6_; T4_ = (NIM_BOOL)0; T4_ = ((*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)34) || (*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)27) || (*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)28)); if (!(T4_)) goto LA5_; T6_ = (NI)0; T6_ = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; T4_ = (((NI)0) < T6_); LA5_: ; if (!T4_) goto LA7_; eqcopy___ast_3457(&key, (*n)._kind_6.sons.p->data[((NI)0)]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } goto LA2_; LA7_: ; { eqcopy___ast_3457(&key, n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA2_: ; switch ((*key).kind) { case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)2): { result = whichKeyword__idents_287((*key)._kind_5.ident); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)3): { result = whichKeyword__idents_287((*(*key)._kind_4.sym).name); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)61): { result = ((tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA)9); } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)56): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)57): { result = whichPragma__trees_251((*key)._kind_6.sons.p->data[((NI)0)]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; default: { result = ((tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA)0); } break; } eqdestroy___ast_3454(&key); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, effectSpec__trees_291)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA effectType) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* result; NIM_BOOL oldNimErrFin4_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = NIM_NIL; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; i_2 = ((NI)0); { while (1) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* it; if (!(i_2 < colontmp_)) goto LA3 ; it = NIM_NIL; i = i_2; eqcopy___ast_3457(&it, (*n)._kind_6.sons.p->data[i]); if (NIM_UNLIKELY(*nimErr_)) goto LA4_; { NIM_BOOL T7_; tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA T9_; T7_ = (NIM_BOOL)0; T7_ = ((*it).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)34)); if (!(T7_)) goto LA8_; T9_ = (tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA)0; T9_ = whichPragma__trees_251(it); if (NIM_UNLIKELY(*nimErr_)) goto LA4_; T7_ = (T9_ == effectType); LA8_: ; if (!T7_) goto LA10_; eqcopy___ast_3457(&result, (*it)._kind_6.sons.p->data[((NI)1)]); if (NIM_UNLIKELY(*nimErr_)) goto LA4_; { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* T16_; if (!!(((*result).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)39) || (*result).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)41)))) goto LA14_; T16_ = NIM_NIL; T16_ = newNodeI__ast_3949(((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)39), (*result).info); if (NIM_UNLIKELY(*nimErr_)) goto LA4_; eqsink___ast_3460(&result, T16_); if (NIM_UNLIKELY(*nimErr_)) goto LA4_; add__ast_6233(result, (*it)._kind_6.sons.p->data[((NI)1)]); if (NIM_UNLIKELY(*nimErr_)) goto LA4_; } LA14_: ; eqdestroy___ast_3454(&it); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; } LA10_: ; i_2 += ((NI)1); { LA4_:; } { oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&it); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin4_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA3: ; } } }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyEnum_TMagic__mTDI9bmjHUNrwgx3GHm4Krg, getMagic__trees_144)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* op) { tyEnum_TMagic__mTDI9bmjHUNrwgx3GHm4Krg result; { result = (tyEnum_TMagic__mTDI9bmjHUNrwgx3GHm4Krg)0; { if (!(op == ((tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*) NIM_NIL))) goto LA3_; result = ((tyEnum_TMagic__mTDI9bmjHUNrwgx3GHm4Krg)0); goto BeforeRet_; } LA3_: ; switch ((*op).kind) { case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)26) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)32): { switch ((*(*op)._kind_6.sons.p->data[((NI)0)]).kind) { case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)3): { result = (*(*(*op)._kind_6.sons.p->data[((NI)0)])._kind_4.sym).magic; } break; default: { result = ((tyEnum_TMagic__mTDI9bmjHUNrwgx3GHm4Krg)0); } break; } } break; default: { result = ((tyEnum_TMagic__mTDI9bmjHUNrwgx3GHm4Krg)0); } break; } }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA*, getRoot__trees_397)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = NIM_NIL; switch ((*n).kind) { case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)3): { { if (!((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__EmlFK9c4sdJy7UDy5lm8yQQ)8) || (*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__EmlFK9c4sdJy7UDy5lm8yQQ)11) || (*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__EmlFK9c4sdJy7UDy5lm8yQQ)5) || (*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__EmlFK9c4sdJy7UDy5lm8yQQ)9) || (*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__EmlFK9c4sdJy7UDy5lm8yQQ)21) || (*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__EmlFK9c4sdJy7UDy5lm8yQQ)3))) goto LA4_; eqcopy___ast_4063(&result, (*n)._kind_4.sym); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA4_: ; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)45): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)42): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)65): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)47): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)67): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)66): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)46): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)64): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)63): { result = getRoot__trees_397((*n)._kind_6.sons.p->data[((NI)0)]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)58): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)59): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)60): { result = getRoot__trees_397((*n)._kind_6.sons.p->data[((NI)1)]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)26) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)32): { { tyEnum_TMagic__mTDI9bmjHUNrwgx3GHm4Krg T11_; T11_ = (tyEnum_TMagic__mTDI9bmjHUNrwgx3GHm4Krg)0; T11_ = getMagic__trees_144(n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; if (!(T11_ == ((tyEnum_TMagic__mTDI9bmjHUNrwgx3GHm4Krg)126))) goto LA12_; result = getRoot__trees_397((*n)._kind_6.sons.p->data[((NI)1)]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA12_: ; } break; default: { } break; } }BeforeRet_: ; return result; } static N_INLINE(NI, safeLen__ast_3318)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NI result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NI)0; { if (!((*n).kind >= ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)0) && (*n).kind <= ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)23))) goto LA3_; result = ((NI)0); } goto LA1_; LA3_: ; { result = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA1_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCaseObj__trees_165)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NIM_BOOL result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; { if (!((*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)139))) goto LA3_; result = NIM_TRUE; goto BeforeRet_; } LA3_: ; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = safeLen__ast_3318(n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; i_2 = ((NI)0); { while (1) { if (!(i_2 < colontmp_)) goto LA7 ; i = i_2; { NIM_BOOL T10_; T10_ = (NIM_BOOL)0; T10_ = isCaseObj__trees_165((*n)._kind_6.sons.p->data[i]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; if (!T10_) goto LA11_; result = NIM_TRUE; goto BeforeRet_; } LA11_: ; i_2 += ((NI)1); } LA7: ; } } }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConstExpr__trees_153)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NIM_BOOL result; NIM_BOOL T1_; result = (NIM_BOOL)0; T1_ = (NIM_BOOL)0; T1_ = ((*n).kind >= ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)5) && (*n).kind <= ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)23)); if (T1_) goto LA2_; T1_ = (((*n).flags &((NU32)1<<((NU)((((tyEnum_TNodeFlag__69c8WThOUT3nlaj2cOZ9c2dw)4)))&31U)))!=0); LA2_: ; result = T1_; return result; } static N_INLINE(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, pop__trees_32)(tySequence__xxu3GgaFAGO6lOns9aHaeLQ* s) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* result; NI L; NI T1_; result = NIM_NIL; T1_ = (*s).len; L = (NI)(T1_ - ((NI)1)); result = (*s).p->data[L]; (*s).p->data[L] = 0; shrink__ast_3748(s, ((NI) (L))); return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cyclicTreeAux__trees_4)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, tySequence__xxu3GgaFAGO6lOns9aHaeLQ* visited) { NIM_BOOL result; NIM_BOOL oldNimErrFin19_; NIM_BOOL oldNimErrFin17_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; { if (!(n == ((tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*) NIM_NIL))) goto LA3_; goto BeforeRet_; } LA3_: ; { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q** v; NI i; NI L; NI T6_; v = (tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q**)0; i = ((NI)0); T6_ = (*visited).len; L = T6_; { while (1) { if (!(i < L)) goto LA8 ; v = &(*visited).p->data[i]; { if (!((*v) == n)) goto LA11_; result = NIM_TRUE; goto BeforeRet_; } LA11_: ; i += ((NI)1); } LA8: ; } } { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD__2; if (!!(((*n).kind >= ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)1) && (*n).kind <= ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)23)))) goto LA15_; colontmpD_ = NIM_NIL; colontmpD__2 = NIM_NIL; colontmpD_ = 0; eqcopy___ast_3457(&colontmpD_, n); if (NIM_UNLIKELY(*nimErr_)) goto LA17_; add__ast_4147((&(*visited)), colontmpD_); { tySequence__xxu3GgaFAGO6lOns9aHaeLQ colontmp_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q** nSon; NI i_2; NI L_2; NI T20_; colontmp_.len = 0; colontmp_.p = NIM_NIL; nSon = (tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q**)0; eqcopy___ast_3726((&colontmp_), (*n)._kind_6.sons); if (NIM_UNLIKELY(*nimErr_)) goto LA19_; i_2 = ((NI)0); T20_ = colontmp_.len; L_2 = T20_; { while (1) { if (!(i_2 < L_2)) goto LA22 ; nSon = &colontmp_.p->data[i_2]; { NIM_BOOL T25_; T25_ = (NIM_BOOL)0; T25_ = cyclicTreeAux__trees_4((*nSon), visited); if (NIM_UNLIKELY(*nimErr_)) goto LA19_; if (!T25_) goto LA26_; result = NIM_TRUE; eqdestroy___ast_3723((&colontmp_)); if (NIM_UNLIKELY(*nimErr_)) goto LA17_; eqdestroy___ast_3454(&colontmpD__2); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; } LA26_: ; i_2 += ((NI)1); } LA22: ; } { LA19_:; } { oldNimErrFin19_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3723((&colontmp_)); if (NIM_UNLIKELY(*nimErr_)) goto LA17_; *nimErr_ = oldNimErrFin19_; } if (NIM_UNLIKELY(*nimErr_)) goto LA17_; } colontmpD__2 = pop__trees_32(visited); (void)(colontmpD__2); { LA17_:; } { oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&colontmpD__2); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin17_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA15_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cyclicTree__trees_51)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NIM_BOOL result; tySequence__xxu3GgaFAGO6lOns9aHaeLQ visited; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; visited.len = 0; visited.p = NIM_NIL; visited.len = 0; visited.p = (tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content*) newSeqPayload(0, sizeof(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*), NIM_ALIGNOF(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*)); result = cyclicTreeAux__trees_4(n, (&visited)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3723((&visited)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, unnestStmts__trees_346)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* result) { NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); { if (!((*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)115))) goto LA3_; { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* x; x = NIM_NIL; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = safeLen__ast_3318(n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; i_2 = ((NI)0); { while (1) { if (!(i_2 < colontmp_)) goto LA8 ; i = i_2; eqcopy___ast_3457(&x, (*n)._kind_6.sons.p->data[i]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; unnestStmts__trees_346(x, result); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; i_2 += ((NI)1); } LA8: ; } } eqdestroy___ast_3454(&x); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } } goto LA1_; LA3_: ; { if (!!(((*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)125) || (*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)23)))) goto LA10_; add__ast_6233(result, n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } goto LA1_; LA10_: ; LA1_: ; }BeforeRet_: ; } N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, flattenStmts__trees_362)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = NIM_NIL; result = newNodeI__ast_3949(((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)115), (*n).info); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; unnestStmts__trees_346(n, result); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; { NI T3_; T3_ = (NI)0; T3_ = len__ast_3325(result); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; if (!(T3_ == ((NI)1))) goto LA4_; eqcopy___ast_3457(&result, (*result)._kind_6.sons.p->data[((NI)0)]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA4_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, stupidStmtListExpr__trees_411)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NIM_BOOL result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; { NI i; NI colontmp_; NI T2_; NI i_2; i = (NI)0; colontmp_ = (NI)0; T2_ = (NI)0; T2_ = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; colontmp_ = (NI)(T2_ - ((NI)1)); i_2 = ((NI)0); { while (1) { if (!(i_2 < colontmp_)) goto LA4 ; i = i_2; { if (!!(((*(*n)._kind_6.sons.p->data[i]).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)1) || (*(*n)._kind_6.sons.p->data[i]).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)125)))) goto LA7_; result = NIM_FALSE; goto BeforeRet_; } LA7_: ; i_2 += ((NI)1); } LA4: ; } } result = NIM_TRUE; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, propSpec__trees_323)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA effectType) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* result; NIM_BOOL oldNimErrFin4_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = NIM_NIL; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; i_2 = ((NI)0); { while (1) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* it; if (!(i_2 < colontmp_)) goto LA3 ; it = NIM_NIL; i = i_2; eqcopy___ast_3457(&it, (*n)._kind_6.sons.p->data[i]); if (NIM_UNLIKELY(*nimErr_)) goto LA4_; { NIM_BOOL T7_; tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA T9_; T7_ = (NIM_BOOL)0; T7_ = ((*it).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)34)); if (!(T7_)) goto LA8_; T9_ = (tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA)0; T9_ = whichPragma__trees_251(it); if (NIM_UNLIKELY(*nimErr_)) goto LA4_; T7_ = (T9_ == effectType); LA8_: ; if (!T7_) goto LA10_; eqcopy___ast_3457(&result, (*it)._kind_6.sons.p->data[((NI)1)]); if (NIM_UNLIKELY(*nimErr_)) goto LA4_; eqdestroy___ast_3454(&it); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; } LA10_: ; i_2 += ((NI)1); { LA4_:; } { oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&it); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin4_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA3: ; } } }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, extractRange__trees_369)(tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ k, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, NI a, NI b) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = NIM_NIL; result = newNodeI__ast_3953(k, (*n).info, (NI)((NI)(b - a) + ((NI)1))); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; { NI i; NI colontmp_; NI res; i = (NI)0; colontmp_ = (NI)0; colontmp_ = (NI)(b - a); res = ((NI)0); { while (1) { if (!(res <= colontmp_)) goto LA3 ; i = res; eqcopy___ast_3457(&(*result)._kind_6.sons.p->data[i], (*n)._kind_6.sons.p->data[(NI)(i + a)]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; res += ((NI)1); } LA3: ; } } }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDeepConstExpr__trees_178)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, NIM_BOOL preventInheritance) { NIM_BOOL result; NIM_BOOL oldNimErrFin17_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; switch ((*n).kind) { case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)5) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)23): { result = NIM_TRUE; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)33): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)34): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)58): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)59): { result = isDeepConstExpr__trees_178((*n)._kind_6.sons.p->data[((NI)1)], preventInheritance); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)39): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)41): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)37): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)160): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)38): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)155): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)44): { { NI i; NI colontmp_; NI colontmp__2; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp__2 = (NI)0; colontmp_ = ((*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)38)); colontmp__2 = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; i_2 = colontmp_; { while (1) { if (!(i_2 < colontmp__2)) goto LA6 ; i = i_2; { NIM_BOOL T9_; T9_ = (NIM_BOOL)0; T9_ = isDeepConstExpr__trees_178((*n)._kind_6.sons.p->data[i], preventInheritance); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; if (!!(T9_)) goto LA10_; result = NIM_FALSE; goto BeforeRet_; } LA10_: ; i_2 += ((NI)1); } LA6: ; } } { if (!((*n).typ == 0)) goto LA14_; result = NIM_TRUE; } goto LA12_; LA14_: ; { tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* t; t = NIM_NIL; t = skipTypes__ast_4803((*n).typ, TM__0kvKTJpCwLz5GMPVAM8DVQ_2); if (NIM_UNLIKELY(*nimErr_)) goto LA17_; { NIM_BOOL T20_; T20_ = (NIM_BOOL)0; T20_ = ((*t).kind == ((tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ)22) || (*t).kind == ((tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ)21)); if (T20_) goto LA21_; T20_ = (((*t).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__wRa4s6r4s9cXJ9abWKsrci1Q)1)))&63U)))!=0); LA21_: ; if (!T20_) goto LA22_; result = NIM_FALSE; eqdestroy___ast_3543(&t); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; } LA22_: ; { if (!((*t).kind == ((tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ)17))) goto LA26_; { NIM_BOOL T30_; T30_ = (NIM_BOOL)0; T30_ = preventInheritance; if (!(T30_)) goto LA31_; T30_ = !(((*t).sons.p->data[((NI)0)] == ((tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA*) NIM_NIL))); LA31_: ; if (!T30_) goto LA32_; result = NIM_FALSE; } goto LA28_; LA32_: ; { NIM_BOOL T35_; T35_ = (NIM_BOOL)0; T35_ = isCaseObj__trees_165((*t).n); if (NIM_UNLIKELY(*nimErr_)) goto LA17_; if (!T35_) goto LA36_; result = NIM_FALSE; } goto LA28_; LA36_: ; { result = NIM_TRUE; } LA28_: ; } goto LA24_; LA26_: ; { result = NIM_TRUE; } LA24_: ; { LA17_:; } { oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3543(&t); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin17_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA12_: ; } break; default: { } break; } }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue__trees_382)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NIM_BOOL result; NIM_BOOL T1_; NIM_BOOL T2_; NIM_BOOL T3_; NIM_BOOL T7_; result = (NIM_BOOL)0; T1_ = (NIM_BOOL)0; T2_ = (NIM_BOOL)0; T3_ = (NIM_BOOL)0; T3_ = ((*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)3)); if (!(T3_)) goto LA4_; T3_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__EmlFK9c4sdJy7UDy5lm8yQQ)20)); LA4_: ; T2_ = T3_; if (!(T2_)) goto LA5_; T2_ = !(((*(*n)._kind_4.sym).position == ((NI)0))); LA5_: ; T1_ = T2_; if (T1_) goto LA6_; T7_ = (NIM_BOOL)0; T7_ = ((*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)6)); if (!(T7_)) goto LA8_; T7_ = !(((*n)._kind_1.intVal == IL64(0))); LA8_: ; T1_ = T7_; LA6_: ; result = T1_; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNoSideEffectPragma__trees_264)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NIM_BOOL result; tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA k; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; k = whichPragma__trees_251(n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; { if (!(k == ((tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA)9))) goto LA3_; k = whichPragma__trees_251((*n)._kind_6.sons.p->data[((NI)1)]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA3_: ; result = (k == ((tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA)109)); }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, findPragma__trees_278)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA which) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* result; NIM_BOOL oldNimErrFin6_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = NIM_NIL; { if (!((*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)90))) goto LA3_; { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* son; son = NIM_NIL; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = safeLen__ast_3318(n); if (NIM_UNLIKELY(*nimErr_)) goto LA6_; i_2 = ((NI)0); { while (1) { if (!(i_2 < colontmp_)) goto LA9 ; i = i_2; eqcopy___ast_3457(&son, (*n)._kind_6.sons.p->data[i]); if (NIM_UNLIKELY(*nimErr_)) goto LA6_; { tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA T12_; T12_ = (tyEnum_TSpecialWord__hTGV9ad79bZJfqtldnYLJ8AA)0; T12_ = whichPragma__trees_251(son); if (NIM_UNLIKELY(*nimErr_)) goto LA6_; if (!(T12_ == which)) goto LA13_; eqsink___ast_3460(&result, son); if (NIM_UNLIKELY(*nimErr_)) goto LA6_; son = 0; eqdestroy___ast_3454(&son); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; } LA13_: ; i_2 += ((NI)1); } LA9: ; } } { LA6_:; } { oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&son); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin6_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } } LA3_: ; }BeforeRet_: ; return result; }