2329 lines
79 KiB
C
2329 lines
79 KiB
C
/* Generated by Nim Compiler v1.9.0 */
|
|
#define NIM_INTBITS 32
|
|
#define NIM_EmulateOverflowChecks
|
|
|
|
#include "nimbase.h"
|
|
#include <string.h>
|
|
#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_3846)(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_2022)(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_3157)(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_3994;
|
|
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_3994);
|
|
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_2022((*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)((NU32)(((NU) (x))) - (NU32)(((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)8));
|
|
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)8));
|
|
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_3157(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_3846(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;
|
|
}
|