/* Generated by Nim Compiler v1.9.0 */ #define NIM_INTBITS 64 #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_TContext__QUPFyDhhyyn3RQbxNbH7xg tyObject_TContext__QUPFyDhhyyn3RQbxNbH7xg; typedef struct tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA; typedef struct tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ; typedef struct tySequence__xxu3GgaFAGO6lOns9aHaeLQ tySequence__xxu3GgaFAGO6lOns9aHaeLQ; typedef struct tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content; typedef struct tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA; 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 tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ; typedef struct tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ_Content tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ_Content; typedef struct tyObject_TLoc__cQfx3WjJDtozqFtY4RdR9cA tyObject_TLoc__cQfx3WjJDtozqFtY4RdR9cA; typedef struct NimStrPayload NimStrPayload; typedef struct NimStringV2 NimStringV2; typedef struct tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA; typedef struct tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg; typedef struct tyObject_TLib__tP0u9cd1FuZgfCfM3WIm9cRg tyObject_TLib__tP0u9cd1FuZgfCfM3WIm9cRg; typedef struct tyObject_Env_patternsdotnim_matchNested___Sev7LbTgxp7UiH0TBSZ1DQ tyObject_Env_patternsdotnim_matchNested___Sev7LbTgxp7UiH0TBSZ1DQ; typedef struct tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A; struct tySequence__xxu3GgaFAGO6lOns9aHaeLQ { NI len; tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content* p; }; struct tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ { tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* owner; tySequence__xxu3GgaFAGO6lOns9aHaeLQ mapping; NI formals; tyObject_TContext__QUPFyDhhyyn3RQbxNbH7xg* c; NIM_BOOL subMatch; NIM_BOOL mappingIsFull; }; 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_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ; typedef NU8 tyEnum_TCallingConvention__XL1p2EKvOAlAHpc68ecZPw; typedef NU64 tySet_tyEnum_TTypeFlag__wRa4s6r4s9cXJ9abWKsrci1Q; struct tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ { NI len; tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ_Content* p; }; typedef NU8 tyEnum_TLocKind__iCEcZjTaghPmL3Wx2e5DQw; typedef NU8 tyEnum_TStorageLoc__BKvMXWvKko6Yn5329c9aw9afg; typedef NU16 tySet_tyEnum_TLocFlag__9a7m8BSAfzn6yluCKaq6viw; struct NimStrPayload { NI cap; NIM_CHAR data[SEQ_DECL_SIZE]; }; struct NimStringV2 { NI len; NimStrPayload* p; }; 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_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 tyEnum_TSymKind__EmlFK9c4sdJy7UDy5lm8yQQ; typedef NU16 tyEnum_TMagic__mTDI9bmjHUNrwgx3GHm4Krg; struct tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg { NU16 line; NI16 col; NI32 fileIndex; }; typedef NU64 tySet_tyEnum_TSymFlag__TAs9cOBd13PVhEf42OX9cOdg; typedef NU32 tySet_tyEnum_TOption__PrH9cMsvu5oCG0HODAZ3CAg; 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; }; typedef NU32 tySet_tyEnum_TNodeFlag__69c8WThOUT3nlaj2cOZ9c2dw; typedef NU8 tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ; 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; }; }; typedef NU8 tyEnum_TNodeFlag__69c8WThOUT3nlaj2cOZ9c2dw; struct tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA { NI id; NimStringV2 s; tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA* next; NI h; }; typedef NU8 tySet_tyEnum_TTypeCmpFlag__taKmDpZ7mWMrTpIE9cV59a7w; struct tyObject_Env_patternsdotnim_matchNested___Sev7LbTgxp7UiH0TBSZ1DQ { RootObj Sup; NI colonstate_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* p1; }; struct tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A { NI rc; NI rootIdx; }; typedef struct { N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* op, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* arglist, NIM_BOOL rpn, void* ClE_0); void* ClE_0; } tyProc__I8rWxiIokcCDeN9ctfdryYQ; typedef N_CLOSURE_PTR(NIM_BOOL, TM__boskDBJ4Cp44KknuaESeng_11) (tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* op, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* arglist, NIM_BOOL rpn); typedef N_CLOSURE_PTR(NIM_BOOL, TM__boskDBJ4Cp44KknuaESeng_12) (tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* op, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* arglist, NIM_BOOL rpn); typedef N_CLOSURE_PTR(NIM_BOOL, TM__boskDBJ4Cp44KknuaESeng_13) (tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* op, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* arglist, NIM_BOOL rpn); typedef NU8 tyEnum_TAliasRequest__19anJwPpgb66lTqx4j4CB3g; typedef NU8 tyEnum_TAnalysisResult__lH6TLXHWVWvIEotJXo7r7A; #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 #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 static N_INLINE(void, nimZeroMem)(void* p, NI size); static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size); static N_INLINE(NIM_BOOL*, nimErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_4063)(tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA** dest, tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* src); N_LIB_PRIVATE N_NIMCALL(void, eqcopy___semdata_2058)(tyObject_TContext__QUPFyDhhyyn3RQbxNbH7xg** dest, tyObject_TContext__QUPFyDhhyyn3RQbxNbH7xg* src, NIM_BOOL cyclic); static N_INLINE(NI, len__ast_5071)(tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* n); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, matchStmtList__patterns_433)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* p, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); static N_INLINE(NI, len__ast_3325)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, flattenStmts__trees_362)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchRange__patterns_438)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* p, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, NI i); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__patterns_30)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* p, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, skipHidden__types_3855)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); static N_INLINE(NIM_BOOL, isPatternParam__patterns_115)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* p); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, bindOrCheck__patterns_145)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* param, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, getLazy__patterns_18)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* sym); N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_3457)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q** dest, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* src); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTrees__patterns_49)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* a, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* b); static N_INLINE(NIM_BOOL, sameKinds__patterns_37)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* a, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* b); N_LIB_PRIVATE N_NIMCALL(tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ, canonKind__patterns_34)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); 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(NIM_BOOL, sameTypeOrNil__types_2031)(tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* a, tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* b, tySet_tyEnum_TTypeCmpFlag__taKmDpZ7mWMrTpIE9cV59a7w flags); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, checkTypes__patterns_99)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* p, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchNodeKinds__parampatterns_510)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* p, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, argtypeMatches__sigmatch_4638)(tyObject_TContext__QUPFyDhhyyn3RQbxNbH7xg* c, tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* f, tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* a, NIM_BOOL fromHlo); N_LIB_PRIVATE N_NIMCALL(void, putLazy__patterns_22)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* sym, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(void, newSeq__ast_3958)(tySequence__xxu3GgaFAGO6lOns9aHaeLQ* s, NI len); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_3454)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q** dest); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, inSymChoice__patterns_73)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* sc, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* x); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, astdef__ast_4072)(tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* s); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchChoice__patterns_131)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* p, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchNested__patterns_177)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* p, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, NIM_BOOL rpn); N_LIB_PRIVATE N_NIMCALL(void*, nimNewObj)(NI size, NI alignment); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___patterns_744)(tyObject_Env_patternsdotnim_matchNested___Sev7LbTgxp7UiH0TBSZ1DQ* dest); static N_INLINE(NIM_BOOL, nimDecRefIsLast)(void* p); static N_INLINE(NI, minuspercent___system_790)(NI x, NI y); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_3466)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* dest); N_LIB_PRIVATE N_NIMCALL(void, nimRawDispose)(void* p, NI alignment); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___patterns_764)(tyObject_Env_patternsdotnim_matchNested___Sev7LbTgxp7UiH0TBSZ1DQ** dest); static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicDyn)(void* p); N_LIB_PRIVATE N_NOINLINE(void, rememberCycle__system_3143)(NIM_BOOL isDestroyAction, tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A* s, TNimTypeV2* desc); N_LIB_PRIVATE N_NIMCALL(void, nimDestroyAndDispose)(void* p); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, newNodeI__ast_3949)(tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ kind, tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg info); N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, matchStarAux__patterns_183)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* op, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* arglist, NIM_BOOL rpn, void* ClE_0); N_LIB_PRIVATE N_NIMCALL(void, add__ast_6233)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* father, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* son); N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_224)(NimStringV2 msg); N_LIB_PRIVATE N_NIMCALL(void, gather__patterns_159)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* param, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); 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_3953)(tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ kind, tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg info, NI children); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, lastSon__ast_6268)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_3729)(tySequence__xxu3GgaFAGO6lOns9aHaeLQ* dest, tySequence__xxu3GgaFAGO6lOns9aHaeLQ src); N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap, NI elemSize, NI elemAlign); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, extractRange__trees_369)(tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ k, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, NI a, NI b); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___patterns_627)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* dest); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_3723)(tySequence__xxu3GgaFAGO6lOns9aHaeLQ* dest); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, newSymNode__ast_4787)(tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* sym, tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg info); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, aliasAnalysisRequested__patterns_496)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* params); N_LIB_PRIVATE N_NIMCALL(tyEnum_TAliasRequest__19anJwPpgb66lTqx4j4CB3g, whichAlias__parampatterns_48)(tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* p); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_4060)(tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA** dest); N_LIB_PRIVATE N_NIMCALL(void, addToArgList__patterns_517)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* result, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); static N_INLINE(NI, safeLen__ast_3318)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(tyEnum_TAnalysisResult__lH6TLXHWVWvIEotJXo7r7A, isPartOf__aliases_133)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* a, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* b); N_LIB_PRIVATE N_NIMCALL(void, markUsed__sigmatch_87)(tyObject_TContext__QUPFyDhhyyn3RQbxNbH7xg* c, tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg info, tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* s); static const struct { NI cap; NIM_CHAR data[1+1]; } TM__boskDBJ4Cp44KknuaESeng_2 = { 1 | NIM_STRLIT_FLAG, "|" }; static const NimStringV2 TM__boskDBJ4Cp44KknuaESeng_3 = {1, (NimStrPayload*)&TM__boskDBJ4Cp44KknuaESeng_2}; static const struct { NI cap; NIM_CHAR data[1+1]; } TM__boskDBJ4Cp44KknuaESeng_4 = { 1 | NIM_STRLIT_FLAG, "*" }; static const NimStringV2 TM__boskDBJ4Cp44KknuaESeng_5 = {1, (NimStrPayload*)&TM__boskDBJ4Cp44KknuaESeng_4}; static const struct { NI cap; NIM_CHAR data[2+1]; } TM__boskDBJ4Cp44KknuaESeng_6 = { 2 | NIM_STRLIT_FLAG, "**" }; static const NimStringV2 TM__boskDBJ4Cp44KknuaESeng_7 = {2, (NimStrPayload*)&TM__boskDBJ4Cp44KknuaESeng_6}; static const struct { NI cap; NIM_CHAR data[1+1]; } TM__boskDBJ4Cp44KknuaESeng_8 = { 1 | NIM_STRLIT_FLAG, "~" }; static const NimStringV2 TM__boskDBJ4Cp44KknuaESeng_9 = {1, (NimStrPayload*)&TM__boskDBJ4Cp44KknuaESeng_8}; N_LIB_PRIVATE TNimTypeV2 NTIv2__Sev7LbTgxp7UiH0TBSZ1DQ_; static const struct { NI cap; NIM_CHAR data[45+1]; } TM__boskDBJ4Cp44KknuaESeng_14 = { 45 | NIM_STRLIT_FLAG, "patterns.nim(158, 19) `false` invalid pattern" }; static const NimStringV2 TM__boskDBJ4Cp44KknuaESeng_15 = {45, (NimStrPayload*)&TM__boskDBJ4Cp44KknuaESeng_14}; extern NIM_BOOL nimInErrorMode__system_3980; static NIM_CONST NU32 TM__boskDBJ4Cp44KknuaESeng_10[2] = {3701606400, 3959106816}; N_LIB_PRIVATE TNimTypeV2 NTIv2__Sev7LbTgxp7UiH0TBSZ1DQ_ = {.destructor = (void*)eqdestroy___patterns_744, .size = sizeof(tyObject_Env_patternsdotnim_matchNested___Sev7LbTgxp7UiH0TBSZ1DQ), .align = (NI16) NIM_ALIGNOF(tyObject_Env_patternsdotnim_matchNested___Sev7LbTgxp7UiH0TBSZ1DQ), .depth = 1, .display = TM__boskDBJ4Cp44KknuaESeng_10, .traceImpl = (void*)NIM_NIL, .flags = 0}; static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) { void* T1_; T1_ = (void*)0; T1_ = memset(a, v, ((size_t) (size))); } static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) { NIM_BOOL* result; result = (NIM_BOOL*)0; result = (&nimInErrorMode__system_3980); return result; } static N_INLINE(void, nimZeroMem)(void* p, NI size) { NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); nimSetMem__systemZmemory_7(p, ((int)0), size); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; } static N_INLINE(NI, len__ast_5071)(tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* n) { NI result; NI T1_; result = (NI)0; T1_ = (*n).sons.len; result = T1_; 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, isPatternParam__patterns_115)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* p) { NIM_BOOL result; NIM_BOOL T1_; NIM_BOOL T2_; result = (NIM_BOOL)0; T1_ = (NIM_BOOL)0; T2_ = (NIM_BOOL)0; T2_ = ((*p).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)3)); if (!(T2_)) goto LA3_; T2_ = ((*(*p)._kind_4.sym).kind == ((tyEnum_TSymKind__EmlFK9c4sdJy7UDy5lm8yQQ)3)); LA3_: ; T1_ = T2_; if (!(T1_)) goto LA4_; T1_ = ((*(*p)._kind_4.sym).owner == (*c).owner); LA4_: ; result = T1_; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, getLazy__patterns_18)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* sym) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = NIM_NIL; { if (!(*c).mappingIsFull) goto LA3_; eqcopy___ast_3457(&result, (*c).mapping.p->data[(*sym).position]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA3_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ, canonKind__patterns_34)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ result; result = (tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)0; result = (*n).kind; switch (result) { case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)26) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)32): { result = ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)27); } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)20) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)22): { result = ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)20); } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)74): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)149): { result = ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)73); } break; default: { } break; } return result; } static N_INLINE(NIM_BOOL, sameKinds__patterns_37)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* a, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* b) { NIM_BOOL result; NIM_BOOL T1_; tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ T3_; tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ T4_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; T1_ = (NIM_BOOL)0; T1_ = ((*a).kind == (*b).kind); if (T1_) goto LA2_; T3_ = (tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)0; T3_ = canonKind__patterns_34(a); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; T4_ = (tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)0; T4_ = canonKind__patterns_34(b); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; T1_ = (T3_ == T4_); LA2_: ; result = T1_; }BeforeRet_: ; 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; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTrees__patterns_49)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* a, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* b) { NIM_BOOL result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = sameKinds__patterns_37(a, b); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; if (!T3_) goto LA4_; switch ((*a).kind) { case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)3): { result = ((*a)._kind_4.sym == (*b)._kind_4.sym); } 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)10): { result = ((*a)._kind_1.intVal == (*b)._kind_1.intVal); } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)16) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)18): { result = ((*a)._kind_2.floatVal == (*b)._kind_2.floatVal); } 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)1): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)23): { result = NIM_TRUE; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)4): { tySet_tyEnum_TTypeCmpFlag__taKmDpZ7mWMrTpIE9cV59a7w T13_; T13_ = 0; result = sameTypeOrNil__types_2031((*a).typ, (*b).typ, T13_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; default: { { NI T17_; NI T18_; T17_ = (NI)0; T17_ = len__ast_3325(a); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; T18_ = (NI)0; T18_ = len__ast_3325(b); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; if (!(T17_ == T18_)) goto LA19_; { 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 LA23 ; i = i_2; { NIM_BOOL T26_; T26_ = (NIM_BOOL)0; T26_ = sameTrees__patterns_49((*a)._kind_6.sons.p->data[i], (*b)._kind_6.sons.p->data[i]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; if (!!(T26_)) goto LA27_; goto BeforeRet_; } LA27_: ; i_2 += ((NI)1); } LA23: ; } } result = NIM_TRUE; } LA19_: ; } break; } } LA4_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, checkTypes__patterns_99)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* p, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NIM_BOOL result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; { if (!!(((*p).constraint == ((tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*) NIM_NIL)))) goto LA3_; result = matchNodeKinds__parampatterns_510((*p).constraint, n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; { if (!!(result)) goto LA7_; goto BeforeRet_; } LA7_: ; } LA3_: ; { if (!((*n).typ == 0)) goto LA11_; result = ((*(*p).typ).kind == ((tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ)63) || (*(*p).typ).kind == ((tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ)7)); } goto LA9_; LA11_: ; { result = argtypeMatches__sigmatch_4638((*c).c, (*p).typ, (*n).typ, NIM_TRUE); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA9_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, putLazy__patterns_22)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* sym, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); { if (!!((*c).mappingIsFull)) goto LA3_; newSeq__ast_3958((&(*c).mapping), ((NI) ((*c).formals))); (*c).mappingIsFull = NIM_TRUE; } LA3_: ; eqcopy___ast_3457(&(*c).mapping.p->data[(*sym).position], n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, bindOrCheck__patterns_145)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* param, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NIM_BOOL result; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* pp; NIM_BOOL oldNimErrFin1_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; pp = NIM_NIL; pp = getLazy__patterns_18(c, param); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; { if (!!((pp == ((tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*) NIM_NIL)))) goto LA4_; result = sameTrees__patterns_49(pp, n); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } goto LA2_; LA4_: ; { NIM_BOOL T7_; T7_ = (NIM_BOOL)0; T7_ = ((*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)152)); if (T7_) goto LA8_; T7_ = checkTypes__patterns_99(c, param, n); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; LA8_: ; if (!T7_) goto LA9_; putLazy__patterns_22(c, param, n); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; result = NIM_TRUE; } goto LA2_; LA9_: ; LA2_: ; { LA1_:; } { oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&pp); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin1_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, inSymChoice__patterns_73)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* sc, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* x) { NIM_BOOL result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; { if (!((*sc).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)56))) goto LA3_; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3325(sc); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; i_2 = ((NI)0); { while (1) { if (!(i_2 < colontmp_)) goto LA7 ; i = i_2; { if (!((*(*sc)._kind_6.sons.p->data[i])._kind_4.sym == (*x)._kind_4.sym)) goto LA10_; result = NIM_TRUE; goto BeforeRet_; } LA10_: ; i_2 += ((NI)1); } LA7: ; } } } goto LA1_; LA3_: ; { if (!((*sc).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)57))) goto LA13_; result = ((*(*(*(*sc)._kind_6.sons.p->data[((NI)0)])._kind_4.sym).name).id == (*(*(*x)._kind_4.sym).name).id); } goto LA1_; LA13_: ; LA1_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchChoice__patterns_131)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* p, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NIM_BOOL result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3325(p); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; i_2 = ((NI)1); { while (1) { if (!(i_2 < colontmp_)) goto LA3 ; i = i_2; { NIM_BOOL T6_; T6_ = (NIM_BOOL)0; T6_ = matches__patterns_30(c, (*p)._kind_6.sons.p->data[i], n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; if (!T6_) goto LA7_; result = NIM_TRUE; goto BeforeRet_; } LA7_: ; i_2 += ((NI)1); } LA3: ; } } }BeforeRet_: ; return result; } static N_INLINE(NI, minuspercent___system_790)(NI x, NI y) { NI result; result = (NI)0; result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y)))))); return result; } static N_INLINE(NIM_BOOL, nimDecRefIsLast)(void* p) { NIM_BOOL result; result = (NIM_BOOL)0; { tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A* cell; NI T5_; if (!!((p == NIM_NIL))) goto LA3_; T5_ = (NI)0; T5_ = minuspercent___system_790(((NI) (ptrdiff_t) (p)), ((NI)16)); cell = ((tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A*) (T5_)); { if (!((NI)((*cell).rc & ((NI)-16)) == ((NI)0))) goto LA8_; result = NIM_TRUE; } goto LA6_; LA8_: ; { (*cell).rc -= ((NI)16); } LA6_: ; } LA3_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___patterns_744)(tyObject_Env_patternsdotnim_matchNested___Sev7LbTgxp7UiH0TBSZ1DQ* dest) { NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = nimDecRefIsLast((*dest).p1); if (!T3_) goto LA4_; eqdestroy___ast_3466((*dest).p1); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; nimRawDispose((*dest).p1, ((NI)8)); } LA4_: ; }BeforeRet_: ; } static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicDyn)(void* p) { NIM_BOOL result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; { tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A* cell; NI T5_; if (!!((p == NIM_NIL))) goto LA3_; T5_ = (NI)0; T5_ = minuspercent___system_790(((NI) (ptrdiff_t) (p)), ((NI)16)); cell = ((tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A*) (T5_)); { if (!((NI)((*cell).rc & ((NI)-16)) == ((NI)0))) goto LA8_; result = NIM_TRUE; } goto LA6_; LA8_: ; { (*cell).rc -= ((NI)16); } LA6_: ; rememberCycle__system_3143(result, cell, (*((TNimTypeV2**) (p)))); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA3_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___patterns_764)(tyObject_Env_patternsdotnim_matchNested___Sev7LbTgxp7UiH0TBSZ1DQ** dest) { { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = nimDecRefIsLastCyclicDyn((*dest)); if (!T3_) goto LA4_; nimDestroyAndDispose((*dest)); } LA4_: ; } N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, matchStarAux__patterns_183)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* op, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* arglist, NIM_BOOL rpn, void* ClE_0) { NIM_BOOL result; tyObject_Env_patternsdotnim_matchNested___Sev7LbTgxp7UiH0TBSZ1DQ* colonenvP_; NIM_BOOL oldNimErrFin25_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; colonenvP_ = (tyObject_Env_patternsdotnim_matchNested___Sev7LbTgxp7UiH0TBSZ1DQ*) ClE_0; result = NIM_TRUE; { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = ((*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)27) || (*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)29) || (*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)30) || (*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)31) || (*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)26) || (*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)28) || (*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)32)); if (!(T3_)) goto LA4_; T3_ = matches__patterns_30(c, (*op)._kind_6.sons.p->data[((NI)1)], (*n)._kind_6.sons.p->data[((NI)0)]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; LA4_: ; if (!T3_) goto LA5_; { 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)1); { while (1) { if (!(i_2 < colontmp_)) goto LA9 ; i = i_2; { tyProc__I8rWxiIokcCDeN9ctfdryYQ T12_; NIM_BOOL T13_; nimZeroMem((void*)(&T12_), sizeof(tyProc__I8rWxiIokcCDeN9ctfdryYQ)); T12_.ClP_0 = matchStarAux__patterns_183; T12_.ClE_0 = colonenvP_; T13_ = (NIM_BOOL)0; T13_ = T12_.ClE_0? T12_.ClP_0(c, op, (*n)._kind_6.sons.p->data[i], arglist, rpn, T12_.ClE_0):((TM__boskDBJ4Cp44KknuaESeng_11)(T12_.ClP_0))(c, op, (*n)._kind_6.sons.p->data[i], arglist, rpn); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; if (!!(T13_)) goto LA14_; result = NIM_FALSE; goto BeforeRet_; } LA14_: ; i_2 += ((NI)1); } LA9: ; } } { if (!rpn) goto LA18_; add__ast_6233(arglist, (*n)._kind_6.sons.p->data[((NI)0)]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA18_: ; } goto LA1_; LA5_: ; { NIM_BOOL T21_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n_2; T21_ = (NIM_BOOL)0; T21_ = ((*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)58)); if (!(T21_)) goto LA22_; T21_ = ((*(*n)._kind_6.sons.p->data[((NI)1)]).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)41)); LA22_: ; if (!T21_) goto LA23_; n_2 = NIM_NIL; eqcopy___ast_3457(&n_2, (*n)._kind_6.sons.p->data[((NI)1)]); if (NIM_UNLIKELY(*nimErr_)) goto LA25_; { NI i_3; NI colontmp__2; NI i_4; i_3 = (NI)0; colontmp__2 = (NI)0; colontmp__2 = len__ast_3325(n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA25_; i_4 = ((NI)0); { while (1) { if (!(i_4 < colontmp__2)) goto LA28 ; i_3 = i_4; { tyProc__I8rWxiIokcCDeN9ctfdryYQ T31_; NIM_BOOL T32_; nimZeroMem((void*)(&T31_), sizeof(tyProc__I8rWxiIokcCDeN9ctfdryYQ)); T31_.ClP_0 = matchStarAux__patterns_183; T31_.ClE_0 = colonenvP_; T32_ = (NIM_BOOL)0; T32_ = T31_.ClE_0? T31_.ClP_0(c, op, (*n_2)._kind_6.sons.p->data[i_3], arglist, rpn, T31_.ClE_0):((TM__boskDBJ4Cp44KknuaESeng_12)(T31_.ClP_0))(c, op, (*n_2)._kind_6.sons.p->data[i_3], arglist, rpn); if (NIM_UNLIKELY(*nimErr_)) goto LA25_; if (!!(T32_)) goto LA33_; result = NIM_FALSE; eqdestroy___ast_3454(&n_2); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; } LA33_: ; i_4 += ((NI)1); } LA28: ; } } { LA25_:; } { oldNimErrFin25_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&n_2); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin25_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } goto LA1_; LA23_: ; { NIM_BOOL T38_; T38_ = (NIM_BOOL)0; T38_ = checkTypes__patterns_99(c, (*(*(*colonenvP_).p1)._kind_6.sons.p->data[((NI)2)])._kind_4.sym, n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; if (!T38_) goto LA39_; add__ast_6233(arglist, n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } goto LA1_; LA39_: ; { result = NIM_FALSE; } LA1_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchNested__patterns_177)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* p, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, NIM_BOOL rpn) { NIM_BOOL result; tyObject_Env_patternsdotnim_matchNested___Sev7LbTgxp7UiH0TBSZ1DQ* colonenv_; tyObject_Env_patternsdotnim_matchNested___Sev7LbTgxp7UiH0TBSZ1DQ* T2_; NIM_BOOL oldNimErrFin12_; NIM_BOOL oldNimErrFin1_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; colonenv_ = NIM_NIL; T2_ = NIM_NIL; T2_ = (tyObject_Env_patternsdotnim_matchNested___Sev7LbTgxp7UiH0TBSZ1DQ*) nimNewObj(sizeof(tyObject_Env_patternsdotnim_matchNested___Sev7LbTgxp7UiH0TBSZ1DQ), NIM_ALIGNOF(tyObject_Env_patternsdotnim_matchNested___Sev7LbTgxp7UiH0TBSZ1DQ)); (*T2_).Sup.m_type = (&NTIv2__Sev7LbTgxp7UiH0TBSZ1DQ_); colonenv_ = T2_; eqcopy___ast_3457(&(*colonenv_).p1, p); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; { if (!!(((*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)27) || (*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)29) || (*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)30) || (*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)31) || (*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)26) || (*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)28) || (*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)32)))) goto LA5_; result = NIM_FALSE; eqdestroy___patterns_764(&colonenv_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; } LA5_: ; { NIM_BOOL T9_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* arglist; T9_ = (NIM_BOOL)0; T9_ = matches__patterns_30(c, (*(*colonenv_).p1)._kind_6.sons.p->data[((NI)1)], (*n)._kind_6.sons.p->data[((NI)0)]); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; if (!T9_) goto LA10_; arglist = NIM_NIL; arglist = newNodeI__ast_3949(((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)152), (*n).info); if (NIM_UNLIKELY(*nimErr_)) goto LA12_; { tyProc__I8rWxiIokcCDeN9ctfdryYQ T15_; NIM_BOOL T16_; nimZeroMem((void*)(&T15_), sizeof(tyProc__I8rWxiIokcCDeN9ctfdryYQ)); T15_.ClP_0 = matchStarAux__patterns_183; T15_.ClE_0 = colonenv_; T16_ = (NIM_BOOL)0; T16_ = T15_.ClE_0? T15_.ClP_0(c, (*colonenv_).p1, n, arglist, rpn, T15_.ClE_0):((TM__boskDBJ4Cp44KknuaESeng_13)(T15_.ClP_0))(c, (*colonenv_).p1, n, arglist, rpn); if (NIM_UNLIKELY(*nimErr_)) goto LA12_; if (!T16_) goto LA17_; result = bindOrCheck__patterns_145(c, (*(*(*colonenv_).p1)._kind_6.sons.p->data[((NI)2)])._kind_4.sym, arglist); if (NIM_UNLIKELY(*nimErr_)) goto LA12_; } LA17_: ; { LA12_:; } { oldNimErrFin12_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&arglist); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; *nimErr_ = oldNimErrFin12_; } if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } LA10_: ; { LA1_:; } { oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___patterns_764(&colonenv_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin1_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, gather__patterns_159)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* param, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* pp; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); pp = NIM_NIL; pp = getLazy__patterns_18(c, param); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = !((pp == ((tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*) NIM_NIL))); if (!(T3_)) goto LA4_; T3_ = ((*pp).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)152)); LA4_: ; if (!T3_) goto LA5_; add__ast_6233(pp, n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } goto LA1_; LA5_: ; { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* T8_; T8_ = NIM_NIL; T8_ = newNodeI__ast_3953(((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)152), (*n).info, ((NI)1)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqsink___ast_3460(&pp, T8_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqcopy___ast_3457(&(*pp)._kind_6.sons.p->data[((NI)0)], n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; putLazy__patterns_22(c, param, pp); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA1_: ; eqdestroy___ast_3454(&pp); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__patterns_30)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* p, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NIM_BOOL result; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n_2; NIM_BOOL oldNimErrFin25_; NIM_BOOL oldNimErrFin98_; NIM_BOOL oldNimErrFin91_; NIM_BOOL oldNimErrFin84_; NIM_BOOL oldNimErrFin1_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; n_2 = NIM_NIL; n_2 = skipHidden__types_3855(n); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; { if (!(((*n_2).flags &((NU32)1<<((NU)((((tyEnum_TNodeFlag__69c8WThOUT3nlaj2cOZ9c2dw)6)))&31U)))!=0)) goto LA4_; result = NIM_FALSE; } goto LA2_; LA4_: ; { NIM_BOOL T7_; T7_ = (NIM_BOOL)0; T7_ = isPatternParam__patterns_115(c, p); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; if (!T7_) goto LA8_; result = bindOrCheck__patterns_145(c, (*p)._kind_4.sym, n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } goto LA2_; LA8_: ; { NIM_BOOL T11_; T11_ = (NIM_BOOL)0; T11_ = ((*n_2).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)3)); if (!(T11_)) goto LA12_; T11_ = ((*p).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)2)); LA12_: ; if (!T11_) goto LA13_; result = ((*(*p)._kind_5.ident).id == (*(*(*n_2)._kind_4.sym).name).id); } goto LA2_; LA13_: ; { NIM_BOOL T16_; T16_ = (NIM_BOOL)0; T16_ = ((*n_2).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)3)); if (!(T16_)) goto LA17_; T16_ = inSymChoice__patterns_73(p, n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; LA17_: ; if (!T16_) goto LA18_; result = NIM_TRUE; } goto LA2_; LA18_: ; { NIM_BOOL T21_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD_; T21_ = (NIM_BOOL)0; T21_ = ((*n_2).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)3)); if (!(T21_)) goto LA22_; T21_ = ((*(*n_2)._kind_4.sym).kind == ((tyEnum_TSymKind__EmlFK9c4sdJy7UDy5lm8yQQ)10)); LA22_: ; if (!T21_) goto LA23_; colontmpD_ = NIM_NIL; { if (!((*p).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)3))) goto LA28_; result = ((*p)._kind_4.sym == (*n_2)._kind_4.sym); } goto LA26_; LA28_: ; { NIM_BOOL T31_; colontmpD_ = astdef__ast_4072((*n_2)._kind_4.sym); if (NIM_UNLIKELY(*nimErr_)) goto LA25_; T31_ = (NIM_BOOL)0; T31_ = matches__patterns_30(c, p, colontmpD_); if (NIM_UNLIKELY(*nimErr_)) goto LA25_; if (!T31_) goto LA32_; result = NIM_TRUE; } goto LA26_; LA32_: ; LA26_: ; { LA25_:; } { oldNimErrFin25_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&colontmpD_); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; *nimErr_ = oldNimErrFin25_; } if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } goto LA2_; LA23_: ; { NimStringV2 opr; if (!((*p).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)153))) goto LA37_; opr.len = 0; opr.p = NIM_NIL; opr = (*(*(*p)._kind_6.sons.p->data[((NI)0)])._kind_5.ident).s; if (eqStrings(opr, TM__boskDBJ4Cp44KknuaESeng_3)) goto LA39_; if (eqStrings(opr, TM__boskDBJ4Cp44KknuaESeng_5)) goto LA40_; if (eqStrings(opr, TM__boskDBJ4Cp44KknuaESeng_7)) goto LA41_; if (eqStrings(opr, TM__boskDBJ4Cp44KknuaESeng_9)) goto LA42_; goto LA43_; LA39_: ; { result = matchChoice__patterns_131(c, p, n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } goto LA44_; LA40_: ; { result = matchNested__patterns_177(c, p, n_2, NIM_FALSE); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } goto LA44_; LA41_: ; { result = matchNested__patterns_177(c, p, n_2, NIM_TRUE); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } goto LA44_; LA42_: ; { NIM_BOOL T49_; T49_ = (NIM_BOOL)0; T49_ = matches__patterns_30(c, (*p)._kind_6.sons.p->data[((NI)1)], n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; result = !(T49_); } goto LA44_; LA43_: ; { { if (!NIM_TRUE) goto LA53_; failedAssertImpl__stdZassertions_224(TM__boskDBJ4Cp44KknuaESeng_15); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } LA53_: ; } LA44_: ; } goto LA2_; LA37_: ; { if (!((*p).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)40))) goto LA56_; { if (!((*(*p)._kind_6.sons.p->data[((NI)1)]).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)30))) goto LA60_; { NIM_BOOL T64_; T64_ = (NIM_BOOL)0; T64_ = matches__patterns_30(c, (*p)._kind_6.sons.p->data[((NI)0)], n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; if (!T64_) goto LA65_; gather__patterns_159(c, (*(*(*p)._kind_6.sons.p->data[((NI)1)])._kind_6.sons.p->data[((NI)1)])._kind_4.sym, n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; result = NIM_TRUE; } LA65_: ; } goto LA58_; LA60_: ; { { NIM_BOOL T70_; T70_ = (NIM_BOOL)0; T70_ = matches__patterns_30(c, (*p)._kind_6.sons.p->data[((NI)0)], n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; if (!T70_) goto LA71_; result = bindOrCheck__patterns_145(c, (*(*p)._kind_6.sons.p->data[((NI)1)])._kind_4.sym, n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } LA71_: ; } LA58_: ; } goto LA2_; LA56_: ; { NIM_BOOL T74_; T74_ = (NIM_BOOL)0; T74_ = sameKinds__patterns_37(p, n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; if (!T74_) goto LA75_; switch ((*p).kind) { case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)3): { result = ((*p)._kind_4.sym == (*n_2)._kind_4.sym); } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)2): { result = ((*(*p)._kind_5.ident).id == (*(*n_2)._kind_5.ident).id); } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)5) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)10): { result = ((*p)._kind_1.intVal == (*n_2)._kind_1.intVal); } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)16) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)18): { result = ((*p)._kind_2.floatVal == (*n_2)._kind_2.floatVal); } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)20) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)22): { result = eqStrings((*p)._kind_3.strVal, (*n_2)._kind_3.strVal); } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)1): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)23): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)4): { result = NIM_TRUE; } break; default: { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* v; v = NIM_NIL; v = lastSon__ast_6268(p); if (NIM_UNLIKELY(*nimErr_)) goto LA84_; { NIM_BOOL T87_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* arglist; T87_ = (NIM_BOOL)0; T87_ = isPatternParam__patterns_115(c, v); if (NIM_UNLIKELY(*nimErr_)) goto LA84_; if (!(T87_)) goto LA88_; T87_ = ((*(*(*v)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ)48)); LA88_: ; if (!T87_) goto LA89_; arglist = NIM_NIL; { NI T94_; NI T95_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD__2; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD__3; T94_ = (NI)0; T94_ = len__ast_3325(p); if (NIM_UNLIKELY(*nimErr_)) goto LA91_; T95_ = (NI)0; T95_ = len__ast_3325(n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA91_; if (!(T94_ <= T95_)) goto LA96_; colontmpD__2 = NIM_NIL; colontmpD__3 = NIM_NIL; { NI i; NI colontmp_; NI T100_; NI i_2; i = (NI)0; colontmp_ = (NI)0; T100_ = (NI)0; T100_ = len__ast_3325(p); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; colontmp_ = (NI)(T100_ - ((NI)1)); i_2 = ((NI)0); { while (1) { if (!(i_2 < colontmp_)) goto LA102 ; i = i_2; { NIM_BOOL T105_; T105_ = (NIM_BOOL)0; T105_ = matches__patterns_30(c, (*p)._kind_6.sons.p->data[i], (*n_2)._kind_6.sons.p->data[i]); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; if (!!(T105_)) goto LA106_; eqdestroy___ast_3454(&colontmpD__3); if (NIM_UNLIKELY(*nimErr_)) goto LA91_; eqdestroy___ast_3454(&colontmpD__2); if (NIM_UNLIKELY(*nimErr_)) goto LA91_; eqdestroy___ast_3454(&arglist); if (NIM_UNLIKELY(*nimErr_)) goto LA84_; eqdestroy___ast_3454(&v); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; eqdestroy___ast_3454(&n_2); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; } LA106_: ; i_2 += ((NI)1); } LA102: ; } } { NIM_BOOL T110_; NIM_BOOL T111_; NI T112_; NI T113_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n_3; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD__4; NI T118_; T110_ = (NIM_BOOL)0; T111_ = (NIM_BOOL)0; T112_ = (NI)0; T112_ = len__ast_3325(p); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; T113_ = (NI)0; T113_ = len__ast_3325(n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; T111_ = (T112_ == T113_); if (!(T111_)) goto LA114_; colontmpD__2 = lastSon__ast_6268(n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; T111_ = ((*colontmpD__2).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)58)); LA114_: ; T110_ = T111_; if (!(T110_)) goto LA115_; colontmpD__3 = lastSon__ast_6268(n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; T110_ = ((*(*colontmpD__3)._kind_6.sons.p->data[((NI)1)]).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)41)); LA115_: ; if (!T110_) goto LA116_; n_3 = NIM_NIL; colontmpD__4 = NIM_NIL; colontmpD__4 = lastSon__ast_6268(n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; eqcopy___ast_3457(&n_3, (*colontmpD__4)._kind_6.sons.p->data[((NI)1)]); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; T118_ = (NI)0; T118_ = len__ast_3325(n_3); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; arglist = newNodeI__ast_3953(((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)152), (*n_3).info, T118_); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; { NI i_3; NI colontmp__2; NI i_4; i_3 = (NI)0; colontmp__2 = (NI)0; colontmp__2 = len__ast_3325(n_3); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; i_4 = ((NI)0); { while (1) { if (!(i_4 < colontmp__2)) goto LA121 ; i_3 = i_4; eqcopy___ast_3457(&(*arglist)._kind_6.sons.p->data[i_3], (*n_3)._kind_6.sons.p->data[i_3]); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; i_4 += ((NI)1); } LA121: ; } } eqdestroy___ast_3454(&colontmpD__4); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; eqdestroy___ast_3454(&n_3); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; } goto LA108_; LA116_: ; { NI T123_; NI T124_; T123_ = (NI)0; T123_ = len__ast_3325(n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; T124_ = (NI)0; T124_ = len__ast_3325(p); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; arglist = newNodeI__ast_3953(((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)152), (*n_2).info, (NI)((NI)(T123_ - T124_) + ((NI)1))); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; { NI i_5; NI colontmp__3; NI T126_; NI T127_; NI res; i_5 = (NI)0; colontmp__3 = (NI)0; T126_ = (NI)0; T126_ = len__ast_3325(n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; T127_ = (NI)0; T127_ = len__ast_3325(p); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; colontmp__3 = (NI)(T126_ - T127_); res = ((NI)0); { while (1) { NI T130_; if (!(res <= colontmp__3)) goto LA129 ; i_5 = res; T130_ = (NI)0; T130_ = len__ast_3325(p); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; eqcopy___ast_3457(&(*arglist)._kind_6.sons.p->data[i_5], (*n_2)._kind_6.sons.p->data[(NI)((NI)(i_5 + T130_) - ((NI)1))]); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; res += ((NI)1); } LA129: ; } } } LA108_: ; result = bindOrCheck__patterns_145(c, (*v)._kind_4.sym, arglist); if (NIM_UNLIKELY(*nimErr_)) goto LA98_; eqdestroy___ast_3454(&colontmpD__3); if (NIM_UNLIKELY(*nimErr_)) goto LA91_; eqdestroy___ast_3454(&colontmpD__2); if (NIM_UNLIKELY(*nimErr_)) goto LA91_; eqdestroy___ast_3454(&arglist); if (NIM_UNLIKELY(*nimErr_)) goto LA84_; eqdestroy___ast_3454(&v); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; eqdestroy___ast_3454(&n_2); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; { LA98_:; } { oldNimErrFin98_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&colontmpD__3); if (NIM_UNLIKELY(*nimErr_)) goto LA91_; eqdestroy___ast_3454(&colontmpD__2); if (NIM_UNLIKELY(*nimErr_)) goto LA91_; *nimErr_ = oldNimErrFin98_; } if (NIM_UNLIKELY(*nimErr_)) goto LA91_; } goto LA92_; LA96_: ; { NI T134_; NI T135_; T134_ = (NI)0; T134_ = len__ast_3325(p); if (NIM_UNLIKELY(*nimErr_)) goto LA91_; T135_ = (NI)0; T135_ = len__ast_3325(n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA91_; if (!((NI)(T134_ - ((NI)1)) == T135_)) goto LA136_; { NI i_6; NI colontmp__4; NI T139_; NI i_7; i_6 = (NI)0; colontmp__4 = (NI)0; T139_ = (NI)0; T139_ = len__ast_3325(p); if (NIM_UNLIKELY(*nimErr_)) goto LA91_; colontmp__4 = (NI)(T139_ - ((NI)1)); i_7 = ((NI)0); { while (1) { if (!(i_7 < colontmp__4)) goto LA141 ; i_6 = i_7; { NIM_BOOL T144_; T144_ = (NIM_BOOL)0; T144_ = matches__patterns_30(c, (*p)._kind_6.sons.p->data[i_6], (*n_2)._kind_6.sons.p->data[i_6]); if (NIM_UNLIKELY(*nimErr_)) goto LA91_; if (!!(T144_)) goto LA145_; eqdestroy___ast_3454(&arglist); if (NIM_UNLIKELY(*nimErr_)) goto LA84_; eqdestroy___ast_3454(&v); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; eqdestroy___ast_3454(&n_2); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; } LA145_: ; i_7 += ((NI)1); } LA141: ; } } arglist = newNodeI__ast_3949(((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)152), (*n_2).info); if (NIM_UNLIKELY(*nimErr_)) goto LA91_; result = bindOrCheck__patterns_145(c, (*v)._kind_4.sym, arglist); if (NIM_UNLIKELY(*nimErr_)) goto LA91_; eqdestroy___ast_3454(&arglist); if (NIM_UNLIKELY(*nimErr_)) goto LA84_; eqdestroy___ast_3454(&v); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; eqdestroy___ast_3454(&n_2); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; } goto LA92_; LA136_: ; LA92_: ; { LA91_:; } { oldNimErrFin91_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&arglist); if (NIM_UNLIKELY(*nimErr_)) goto LA84_; *nimErr_ = oldNimErrFin91_; } if (NIM_UNLIKELY(*nimErr_)) goto LA84_; } LA89_: ; { NI T151_; NI T152_; T151_ = (NI)0; T151_ = len__ast_3325(p); if (NIM_UNLIKELY(*nimErr_)) goto LA84_; T152_ = (NI)0; T152_ = len__ast_3325(n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA84_; if (!(T151_ == T152_)) goto LA153_; { NI i_8; NI colontmp__5; NI i_9; i_8 = (NI)0; colontmp__5 = (NI)0; colontmp__5 = len__ast_3325(p); if (NIM_UNLIKELY(*nimErr_)) goto LA84_; i_9 = ((NI)0); { while (1) { if (!(i_9 < colontmp__5)) goto LA157 ; i_8 = i_9; { NIM_BOOL T160_; T160_ = (NIM_BOOL)0; T160_ = matches__patterns_30(c, (*p)._kind_6.sons.p->data[i_8], (*n_2)._kind_6.sons.p->data[i_8]); if (NIM_UNLIKELY(*nimErr_)) goto LA84_; if (!!(T160_)) goto LA161_; eqdestroy___ast_3454(&v); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; eqdestroy___ast_3454(&n_2); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; } LA161_: ; i_9 += ((NI)1); } LA157: ; } } result = NIM_TRUE; } LA153_: ; { LA84_:; } { oldNimErrFin84_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&v); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; *nimErr_ = oldNimErrFin84_; } if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } break; } } goto LA2_; LA75_: ; LA2_: ; { LA1_:; } { oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&n_2); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin1_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchRange__patterns_438)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* p, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, NI i) { NIM_BOOL result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; { NI j; NI colontmp_; NI i_2; j = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3325(p); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; i_2 = ((NI)0); { while (1) { if (!(i_2 < colontmp_)) goto LA3 ; j = i_2; { NIM_BOOL T6_; tySequence__xxu3GgaFAGO6lOns9aHaeLQ T9_; T6_ = (NIM_BOOL)0; T6_ = matches__patterns_30(c, (*p)._kind_6.sons.p->data[j], (*n)._kind_6.sons.p->data[(NI)(i + j)]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; if (!!(T6_)) goto LA7_; T9_.len = 0; T9_.p = NIM_NIL; T9_.len = 0; T9_.p = (tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content*) newSeqPayload(0, sizeof(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*), NIM_ALIGNOF(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*)); eqsink___ast_3729((&(*c).mapping), T9_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; (*c).mappingIsFull = NIM_FALSE; result = NIM_FALSE; goto BeforeRet_; } LA7_: ; i_2 += ((NI)1); } LA3: ; } } result = NIM_TRUE; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, matchStmtList__patterns_433)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* p, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* result; NIM_BOOL oldNimErrFin11_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = NIM_NIL; { NIM_BOOL T3_; NIM_BOOL T4_; NI T7_; NI T8_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n_2; T3_ = (NIM_BOOL)0; T4_ = (NIM_BOOL)0; T4_ = ((*p).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)115)); if (!(T4_)) goto LA5_; T4_ = ((*n).kind == (*p).kind); LA5_: ; T3_ = T4_; if (!(T3_)) goto LA6_; T7_ = (NI)0; T7_ = len__ast_3325(p); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; T8_ = (NI)0; T8_ = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; T3_ = (T7_ < T8_); LA6_: ; if (!T3_) goto LA9_; n_2 = NIM_NIL; n_2 = flattenStmts__trees_362(n); if (NIM_UNLIKELY(*nimErr_)) goto LA11_; { NI i; NI colontmp_; NI T13_; NI T14_; NI res; i = (NI)0; colontmp_ = (NI)0; T13_ = (NI)0; T13_ = len__ast_3325(n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA11_; T14_ = (NI)0; T14_ = len__ast_3325(p); if (NIM_UNLIKELY(*nimErr_)) goto LA11_; colontmp_ = (NI)(T13_ - T14_); res = ((NI)0); { while (1) { if (!(res <= colontmp_)) goto LA16 ; i = res; { NIM_BOOL T19_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* T22_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* T23_; NI T24_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* T25_; NI T26_; NI T27_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* T28_; T19_ = (NIM_BOOL)0; T19_ = matchRange__patterns_438(c, p, n_2, i); if (NIM_UNLIKELY(*nimErr_)) goto LA11_; if (!T19_) goto LA20_; (*c).subMatch = NIM_TRUE; T22_ = NIM_NIL; T22_ = newNodeI__ast_3953(((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)115), (*n_2).info, ((NI)3)); if (NIM_UNLIKELY(*nimErr_)) goto LA11_; eqsink___ast_3460(&result, T22_); if (NIM_UNLIKELY(*nimErr_)) goto LA11_; T23_ = NIM_NIL; T23_ = extractRange__trees_369(((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)115), n_2, ((NI)0), (NI)(i - ((NI)1))); if (NIM_UNLIKELY(*nimErr_)) goto LA11_; eqsink___ast_3460(&(*result)._kind_6.sons.p->data[((NI)0)], T23_); if (NIM_UNLIKELY(*nimErr_)) goto LA11_; T24_ = (NI)0; T24_ = len__ast_3325(p); if (NIM_UNLIKELY(*nimErr_)) goto LA11_; T25_ = NIM_NIL; T25_ = extractRange__trees_369(((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)115), n_2, i, (NI)((NI)(i + T24_) - ((NI)1))); if (NIM_UNLIKELY(*nimErr_)) goto LA11_; eqsink___ast_3460(&(*result)._kind_6.sons.p->data[((NI)1)], T25_); if (NIM_UNLIKELY(*nimErr_)) goto LA11_; T26_ = (NI)0; T26_ = len__ast_3325(p); if (NIM_UNLIKELY(*nimErr_)) goto LA11_; T27_ = (NI)0; T27_ = len__ast_3325(n_2); if (NIM_UNLIKELY(*nimErr_)) goto LA11_; T28_ = NIM_NIL; T28_ = extractRange__trees_369(((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)115), n_2, (NI)(i + T26_), (NI)(T27_ - ((NI)1))); if (NIM_UNLIKELY(*nimErr_)) goto LA11_; eqsink___ast_3460(&(*result)._kind_6.sons.p->data[((NI)2)], T28_); if (NIM_UNLIKELY(*nimErr_)) goto LA11_; goto LA12; } LA20_: ; res += ((NI)1); } LA16: ; } } LA12: ; { LA11_:; } { oldNimErrFin11_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&n_2); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin11_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } goto LA1_; LA9_: ; { NIM_BOOL T32_; T32_ = (NIM_BOOL)0; T32_ = matches__patterns_30(c, p, n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; if (!T32_) goto LA33_; eqcopy___ast_3457(&result, n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } goto LA1_; LA33_: ; LA1_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___patterns_627)(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ* dest) { NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = nimDecRefIsLast((*dest).owner); if (!T3_) goto LA4_; nimDestroyAndDispose((*dest).owner); } LA4_: ; eqdestroy___ast_3723((&(*dest).mapping)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; { NIM_BOOL T8_; T8_ = (NIM_BOOL)0; T8_ = nimDecRefIsLastCyclicDyn((*dest).c); if (!T8_) goto LA9_; nimDestroyAndDispose((*dest).c); } LA9_: ; }BeforeRet_: ; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, aliasAnalysisRequested__patterns_496)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* params) { NIM_BOOL result; NIM_BOOL oldNimErrFin9_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; { NI T3_; T3_ = (NI)0; T3_ = len__ast_3325(params); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; if (!(((NI)2) <= T3_)) goto LA4_; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3325(params); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; i_2 = ((NI)1); { while (1) { tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* param; if (!(i_2 < colontmp_)) goto LA8 ; param = NIM_NIL; i = i_2; eqcopy___ast_4063(¶m, (*(*params)._kind_6.sons.p->data[i])._kind_4.sym); if (NIM_UNLIKELY(*nimErr_)) goto LA9_; { tyEnum_TAliasRequest__19anJwPpgb66lTqx4j4CB3g T12_; T12_ = (tyEnum_TAliasRequest__19anJwPpgb66lTqx4j4CB3g)0; T12_ = whichAlias__parampatterns_48(param); if (NIM_UNLIKELY(*nimErr_)) goto LA9_; if (!!((T12_ == ((tyEnum_TAliasRequest__19anJwPpgb66lTqx4j4CB3g)1)))) goto LA13_; result = NIM_TRUE; eqdestroy___ast_4060(¶m); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; } LA13_: ; i_2 += ((NI)1); { LA9_:; } { oldNimErrFin9_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_4060(¶m); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin9_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA8: ; } } } LA4_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, addToArgList__patterns_517)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* result, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = !(((*n).typ == ((tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA*) NIM_NIL))); if (!(T3_)) goto LA4_; T3_ = !(((*(*n).typ).kind == ((tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ)7))); LA4_: ; if (!T3_) goto LA5_; { if (!!(((*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)152)))) goto LA9_; add__ast_6233(result, n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } goto LA7_; LA9_: ; { { 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) { if (!(i_2 < colontmp_)) goto LA14 ; i = i_2; add__ast_6233(result, (*n)._kind_6.sons.p->data[i]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; i_2 += ((NI)1); } LA14: ; } } } LA7_: ; } LA5_: ; }BeforeRet_: ; } 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(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, applyRule__patterns_549)(tyObject_TContext__QUPFyDhhyyn3RQbxNbH7xg* c, tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* s, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* result; tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ ctx; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* m; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* params; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* args; NI T2_; NIM_BOOL requiresAA; NIM_BOOL oldNimErrFin14_; NIM_BOOL oldNimErrFin37_; NIM_BOOL oldNimErrFin56_; NIM_BOOL oldNimErrFin32_; NIM_BOOL oldNimErrFin1_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = NIM_NIL; nimZeroMem((void*)(&ctx), sizeof(tyObject_TPatternContext__9cwx2t9aWLI8sEo9ctZiiK3JQ)); m = NIM_NIL; colontmpD_ = NIM_NIL; params = NIM_NIL; args = NIM_NIL; eqcopy___ast_4063(&ctx.owner, s); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; eqcopy___semdata_2058(&ctx.c, c, NIM_TRUE); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; T2_ = (NI)0; T2_ = len__ast_5071((*s).typ); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; ctx.formals = (NI)(T2_ - ((NI)1)); m = matchStmtList__patterns_433((&ctx), (*(*s).ast)._kind_6.sons.p->data[((NI)1)], n); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; { if (!(m == 0)) goto LA5_; result = ((tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*) NIM_NIL); eqdestroy___ast_3454(&args); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3454(¶ms); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3454(&colontmpD_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3454(&m); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___patterns_627((&ctx)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; } LA5_: ; result = newNodeI__ast_3949(((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)27), (*n).info); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; colontmpD_ = newSymNode__ast_4787(s, (*n).info); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; add__ast_6233(result, colontmpD_); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; eqcopy___ast_3457(¶ms, (*(*s).typ).n); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; requiresAA = aliasAnalysisRequested__patterns_496(params); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; { if (!requiresAA) goto LA9_; args = newNodeI__ast_3949(((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)152), (*n).info); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } LA9_: ; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3325(params); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; i_2 = ((NI)1); { while (1) { tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* param; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* x; if (!(i_2 < colontmp_)) goto LA13 ; param = NIM_NIL; x = NIM_NIL; i = i_2; eqcopy___ast_4063(¶m, (*(*params)._kind_6.sons.p->data[i])._kind_4.sym); if (NIM_UNLIKELY(*nimErr_)) goto LA14_; x = getLazy__patterns_18((&ctx), param); if (NIM_UNLIKELY(*nimErr_)) goto LA14_; { if (!(x == 0)) goto LA17_; eqsink___ast_3460(&result, ((tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*) NIM_NIL)); if (NIM_UNLIKELY(*nimErr_)) goto LA14_; eqdestroy___ast_3454(&x); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; eqdestroy___ast_4060(¶m); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; eqdestroy___ast_3454(&args); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3454(¶ms); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3454(&colontmpD_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3454(&m); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___patterns_627((&ctx)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; } LA17_: ; add__ast_6233(result, x); if (NIM_UNLIKELY(*nimErr_)) goto LA14_; { if (!requiresAA) goto LA21_; addToArgList__patterns_517(args, x); if (NIM_UNLIKELY(*nimErr_)) goto LA14_; } LA21_: ; i_2 += ((NI)1); { LA14_:; } { oldNimErrFin14_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&x); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; eqdestroy___ast_4060(¶m); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; *nimErr_ = oldNimErrFin14_; } if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } LA13: ; } } { if (!requiresAA) goto LA27_; { NI i_3; NI colontmp__2; NI i_4; i_3 = (NI)0; colontmp__2 = (NI)0; colontmp__2 = len__ast_3325(params); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; i_4 = ((NI)1); { while (1) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* rs; tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* param_2; tyEnum_TAliasRequest__19anJwPpgb66lTqx4j4CB3g T33_; if (!(i_4 < colontmp__2)) goto LA31 ; rs = NIM_NIL; param_2 = NIM_NIL; i_3 = i_4; eqcopy___ast_3457(&rs, (*result)._kind_6.sons.p->data[i_3]); if (NIM_UNLIKELY(*nimErr_)) goto LA32_; eqcopy___ast_4063(¶m_2, (*(*params)._kind_6.sons.p->data[i_3])._kind_4.sym); if (NIM_UNLIKELY(*nimErr_)) goto LA32_; T33_ = (tyEnum_TAliasRequest__19anJwPpgb66lTqx4j4CB3g)0; T33_ = whichAlias__parampatterns_48(param_2); if (NIM_UNLIKELY(*nimErr_)) goto LA32_; switch (T33_) { case ((tyEnum_TAliasRequest__19anJwPpgb66lTqx4j4CB3g)1): { } break; case ((tyEnum_TAliasRequest__19anJwPpgb66lTqx4j4CB3g)2): { NIM_BOOL ok; ok = NIM_FALSE; { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* arg; arg = NIM_NIL; arg = 0; { NI i_5; NI colontmp__3; NI i_6; i_5 = (NI)0; colontmp__3 = (NI)0; colontmp__3 = safeLen__ast_3318(args); if (NIM_UNLIKELY(*nimErr_)) goto LA37_; i_6 = ((NI)0); { while (1) { if (!(i_6 < colontmp__3)) goto LA40 ; i_5 = i_6; eqcopy___ast_3457(&arg, (*args)._kind_6.sons.p->data[i_5]); if (NIM_UNLIKELY(*nimErr_)) goto LA37_; { NIM_BOOL T43_; tyEnum_TAnalysisResult__lH6TLXHWVWvIEotJXo7r7A T45_; T43_ = (NIM_BOOL)0; T43_ = !((arg == rs)); if (!(T43_)) goto LA44_; T45_ = (tyEnum_TAnalysisResult__lH6TLXHWVWvIEotJXo7r7A)0; T45_ = isPartOf__aliases_133(rs, arg); if (NIM_UNLIKELY(*nimErr_)) goto LA37_; T43_ = (T45_ == ((tyEnum_TAnalysisResult__lH6TLXHWVWvIEotJXo7r7A)2)); LA44_: ; if (!T43_) goto LA46_; ok = NIM_TRUE; eqdestroy___ast_3454(&arg); if (NIM_UNLIKELY(*nimErr_)) goto LA32_; goto LA36; } LA46_: ; i_6 += ((NI)1); } LA40: ; } } { LA37_:; } { oldNimErrFin37_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&arg); if (NIM_UNLIKELY(*nimErr_)) goto LA32_; *nimErr_ = oldNimErrFin37_; } if (NIM_UNLIKELY(*nimErr_)) goto LA32_; } LA36: ; { if (!!(ok)) goto LA52_; eqsink___ast_3460(&result, ((tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*) NIM_NIL)); if (NIM_UNLIKELY(*nimErr_)) goto LA32_; eqdestroy___ast_4060(¶m_2); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; eqdestroy___ast_3454(&rs); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; eqdestroy___ast_3454(&args); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3454(¶ms); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3454(&colontmpD_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3454(&m); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___patterns_627((&ctx)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; } LA52_: ; } break; case ((tyEnum_TAliasRequest__19anJwPpgb66lTqx4j4CB3g)3): { NIM_BOOL ok_2; ok_2 = NIM_TRUE; { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* arg_2; arg_2 = NIM_NIL; arg_2 = 0; { NI i_7; NI colontmp__4; NI i_8; i_7 = (NI)0; colontmp__4 = (NI)0; colontmp__4 = safeLen__ast_3318(args); if (NIM_UNLIKELY(*nimErr_)) goto LA56_; i_8 = ((NI)0); { while (1) { if (!(i_8 < colontmp__4)) goto LA59 ; i_7 = i_8; eqcopy___ast_3457(&arg_2, (*args)._kind_6.sons.p->data[i_7]); if (NIM_UNLIKELY(*nimErr_)) goto LA56_; { NIM_BOOL T62_; tyEnum_TAnalysisResult__lH6TLXHWVWvIEotJXo7r7A T64_; T62_ = (NIM_BOOL)0; T62_ = !((arg_2 == rs)); if (!(T62_)) goto LA63_; T64_ = (tyEnum_TAnalysisResult__lH6TLXHWVWvIEotJXo7r7A)0; T64_ = isPartOf__aliases_133(rs, arg_2); if (NIM_UNLIKELY(*nimErr_)) goto LA56_; T62_ = !((T64_ == ((tyEnum_TAnalysisResult__lH6TLXHWVWvIEotJXo7r7A)0))); LA63_: ; if (!T62_) goto LA65_; ok_2 = NIM_FALSE; eqdestroy___ast_3454(&arg_2); if (NIM_UNLIKELY(*nimErr_)) goto LA32_; goto LA55; } LA65_: ; i_8 += ((NI)1); } LA59: ; } } { LA56_:; } { oldNimErrFin56_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&arg_2); if (NIM_UNLIKELY(*nimErr_)) goto LA32_; *nimErr_ = oldNimErrFin56_; } if (NIM_UNLIKELY(*nimErr_)) goto LA32_; } LA55: ; { if (!!(ok_2)) goto LA71_; eqsink___ast_3460(&result, ((tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*) NIM_NIL)); if (NIM_UNLIKELY(*nimErr_)) goto LA32_; eqdestroy___ast_4060(¶m_2); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; eqdestroy___ast_3454(&rs); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; eqdestroy___ast_3454(&args); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3454(¶ms); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3454(&colontmpD_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3454(&m); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___patterns_627((&ctx)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; goto BeforeRet_; } LA71_: ; } break; } i_4 += ((NI)1); { LA32_:; } { oldNimErrFin32_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_4060(¶m_2); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; eqdestroy___ast_3454(&rs); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; *nimErr_ = oldNimErrFin32_; } if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } LA31: ; } } } LA27_: ; markUsed__sigmatch_87(c, (*n).info, s); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; { if (!ctx.subMatch) goto LA77_; eqsink___ast_3460(&(*m)._kind_6.sons.p->data[((NI)1)], result); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; result = 0; eqsink___ast_3460(&result, m); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; m = 0; } LA77_: ; { LA1_:; } { oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&args); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3454(¶ms); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3454(&colontmpD_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3454(&m); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___patterns_627((&ctx)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin1_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; return result; }