csources_v2/c_code/2_2/@mtrees.nim.c
2022-12-16 10:54:01 +08:00

1318 lines
41 KiB
C

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