/* Generated by Nim Compiler v1.3.5 */
/*   (c) 2020 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 64

/* section: NIM_merge_HEADERS */

#include "nimbase.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

/* section: NIM_merge_FRAME_DEFINES */
#define nimfr_(x, y)
#define nimln_(x, y)

/* section: NIM_merge_FORWARD_TYPES */
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA;
typedef struct RootObj RootObj;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;

/* section: NIM_merge_TYPES */
typedef tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* tyArray__o8KQyTFgNQGvsJZYtdEsgA[8192];
struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw {
tyArray__o8KQyTFgNQGvsJZYtdEsgA buckets;
NI wordCounter;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* idAnon;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* idDelegator;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* emptyIdent;
};
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
typedef NU16 tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw;
typedef NimStringDesc* tyArray__apWyxRcm1PKKoYB6feJLUA[288];

/* section: NIM_merge_PROC_HEADERS */
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tyRef__B0xRsLi0eK4raPu9bd2tkcA)(void* p, NI op);
static N_NIMCALL(void, Marker_tyRef__lnkYNZP9asc88UfiEGjLrbA)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*, getIdent__9coBOmdXN09be4rJvXK6fQGQ)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*, getIdent__jPDJlJukeiI0s9cOWXczqWg)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NCSTRING identifier, NI length, NI h);
N_LIB_PRIVATE N_NIMCALL(NI, cmpExact__Jbw1CiaNJLYIkwEiKlU3qg)(NCSTRING a, NCSTRING b, NI blen);
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NI, cmpIgnoreStyle__Jbw1CiaNJLYIkwEiKlU3qg_2)(NCSTRING a, NCSTRING b, NI blen);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(NI, hashIgnoreStyle__6PCYkKlCNhq9cnRLnqWKkwQ_2)(NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*, getIdent__FXltLmSJ6smaT7i9cc3lKRw)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier, NI h);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
static N_NIMCALL(void, Marker_tyRef__eH2Hxsu3PVPvJHXo2xTrZw)(void* p, NI op);

/* section: NIM_merge_DATA */
N_LIB_PRIVATE TNimType NTI__TzLHS09bRH9a0TYLs39cqcNaw_;
extern TNimType NTI__ytyiCJqK439aF9cIibuRVpAg_;
N_LIB_PRIVATE TNimType NTI__iIXPrEsiKHiioLj0HSkQhA_;
extern TNimType NTI__rR5Bzr1D5krxoo1NcNyeMA_;
N_LIB_PRIVATE TNimType NTI__GufRQq9c0miSybX3zBD4tyA_;
extern TNimType NTI__77mFvmsOLKik79ci2hXkHEg_;
N_LIB_PRIVATE TNimType NTI__B0xRsLi0eK4raPu9bd2tkcA_;
N_LIB_PRIVATE TNimType NTI__o8KQyTFgNQGvsJZYtdEsgA_;
N_LIB_PRIVATE TNimType NTI__lnkYNZP9asc88UfiEGjLrbA_;
STRING_LITERAL(TM__L3r6bVdeFMiI9cwmLpWIeKw_4, ":anonymous", 10);
STRING_LITERAL(TM__L3r6bVdeFMiI9cwmLpWIeKw_5, ":delegator", 10);
extern NIM_CONST tyArray__apWyxRcm1PKKoYB6feJLUA specialWords__jS3I1dUcvbZAEuApBSUHng;
N_LIB_PRIVATE TNimType NTI__eH2Hxsu3PVPvJHXo2xTrZw_;

/* section: NIM_merge_VARS */
extern NIM_BOOL nimInErrorMode__759bT87luu8XGcbkw13FUjA;

/* section: NIM_merge_PROCS */
static N_NIMCALL(void, Marker_tyRef__B0xRsLi0eK4raPu9bd2tkcA)(void* p, NI op) {
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* a;
	a = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)p;
	nimGCvisit((void*)(*a).s, op);
	nimGCvisit((void*)(*a).next, op);
}
static N_NIMCALL(void, Marker_tyRef__lnkYNZP9asc88UfiEGjLrbA)(void* p, NI op) {
	tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* a;
	NI T1_;
	a = (tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < 8192; T1_++) {
	nimGCvisit((void*)(*a).buckets[T1_], op);
	}
	nimGCvisit((void*)(*a).idAnon, op);
	nimGCvisit((void*)(*a).idDelegator, op);
	nimGCvisit((void*)(*a).emptyIdent, op);
}
N_LIB_PRIVATE N_NIMCALL(NI, cmpExact__Jbw1CiaNJLYIkwEiKlU3qg)(NCSTRING a, NCSTRING b, NI blen) {
	NI result;
	NI i;
	NI j;
	result = (NI)0;
	i = ((NI) 0);
	j = ((NI) 0);
	result = ((NI) 1);
	{
		while (1) {
			NIM_CHAR aa;
			NIM_CHAR bb;
			if (!(j < blen)) goto LA2;
			aa = a[i];
			bb = b[j];
			result = (NI)(((NU8)(aa)) - ((NU8)(bb)));
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = !((result == ((NI) 0)));
				if (T5_) goto LA6_;
				T5_ = ((NU8)(aa) == (NU8)(0));
				LA6_: ;
				if (!T5_) goto LA7_;
				goto LA1;
			}
			LA7_: ;
			i += ((NI) 1);
			j += ((NI) 1);
		} LA2: ;
	} LA1: ;
	{
		if (!(result == ((NI) 0))) goto LA11_;
		{
			if (!!(((NU8)(a[i]) == (NU8)(0)))) goto LA15_;
			result = ((NI) 1);
		}
		LA15_: ;
	}
	LA11_: ;
	return result;
}
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
	NCSTRING result;
	result = (NCSTRING)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (s == NIM_NIL);
		if (T3_) goto LA4_;
		T3_ = ((*s).Sup.len == ((NI) 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = "";
	}
	goto LA1_;
	LA5_: ;
	{
		result = ((NCSTRING) ((*s).data));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, cmpIgnoreStyle__Jbw1CiaNJLYIkwEiKlU3qg_2)(NCSTRING a, NCSTRING b, NI blen) {
	NI result;
	NI i;
	NI j;
{	result = (NI)0;
	{
		if (!!(((NU8)(a[((NI) 0)]) == (NU8)(b[((NI) 0)])))) goto LA3_;
		result = ((NI) 1);
		goto BeforeRet_;
	}
	LA3_: ;
	i = ((NI) 0);
	j = ((NI) 0);
	result = ((NI) 1);
	{
		while (1) {
			NIM_CHAR aa;
			NIM_CHAR bb;
			if (!(j < blen)) goto LA6;
			{
				while (1) {
					if (!((NU8)(a[i]) == (NU8)(95))) goto LA8;
					i += ((NI) 1);
				} LA8: ;
			}
			{
				while (1) {
					if (!((NU8)(b[j]) == (NU8)(95))) goto LA10;
					j += ((NI) 1);
				} LA10: ;
			}
			aa = a[i];
			bb = b[j];
			{
				NIM_BOOL T13_;
				T13_ = (NIM_BOOL)0;
				T13_ = ((NU8)(65) <= (NU8)(aa));
				if (!(T13_)) goto LA14_;
				T13_ = ((NU8)(aa) <= (NU8)(90));
				LA14_: ;
				if (!T13_) goto LA15_;
				aa = ((NIM_CHAR) (((NI) ((NI)(((NU8)(aa)) + ((NI) 32))))));
			}
			LA15_: ;
			{
				NIM_BOOL T19_;
				T19_ = (NIM_BOOL)0;
				T19_ = ((NU8)(65) <= (NU8)(bb));
				if (!(T19_)) goto LA20_;
				T19_ = ((NU8)(bb) <= (NU8)(90));
				LA20_: ;
				if (!T19_) goto LA21_;
				bb = ((NIM_CHAR) (((NI) ((NI)(((NU8)(bb)) + ((NI) 32))))));
			}
			LA21_: ;
			result = (NI)(((NU8)(aa)) - ((NU8)(bb)));
			{
				NIM_BOOL T25_;
				T25_ = (NIM_BOOL)0;
				T25_ = !((result == ((NI) 0)));
				if (T25_) goto LA26_;
				T25_ = ((NU8)(aa) == (NU8)(0));
				LA26_: ;
				if (!T25_) goto LA27_;
				goto LA5;
			}
			LA27_: ;
			i += ((NI) 1);
			j += ((NI) 1);
		} LA6: ;
	} LA5: ;
	{
		if (!(result == ((NI) 0))) goto LA31_;
		{
			if (!!(((NU8)(a[i]) == (NU8)(0)))) goto LA35_;
			result = ((NI) 1);
		}
		LA35_: ;
	}
	LA31_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (NIM_BOOL*)0;
	result = (&nimInErrorMode__759bT87luu8XGcbkw13FUjA);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*, getIdent__jPDJlJukeiI0s9cOWXczqWg)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NCSTRING identifier, NI length, NI h) {
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* result;
	NI idx;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* last;
	NI id;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	idx = (NI)(h & ((NI) 8191));
	result = (*ic).buckets[(idx)- 0];
	last = NIM_NIL;
	id = ((NI) 0);
	{
		while (1) {
			if (!!((result == NIM_NIL))) goto LA2;
			{
				NI T5_;
				T5_ = (NI)0;
				T5_ = cmpExact__Jbw1CiaNJLYIkwEiKlU3qg(nimToCStringConv((*result).s), identifier, length);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T5_ == ((NI) 0))) goto LA6_;
				{
					if (!!((last == NIM_NIL))) goto LA10_;
					(*last).next = (*result).next;
					(*result).next = (*ic).buckets[(idx)- 0];
					(*ic).buckets[(idx)- 0] = result;
				}
				LA10_: ;
				goto BeforeRet_;
			}
			goto LA3_;
			LA6_: ;
			{
				NI T13_;
				T13_ = (NI)0;
				T13_ = cmpIgnoreStyle__Jbw1CiaNJLYIkwEiKlU3qg_2(nimToCStringConv((*result).s), identifier, length);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T13_ == ((NI) 0))) goto LA14_;
				id = (*result).Sup.id;
			}
			goto LA3_;
			LA14_: ;
			LA3_: ;
			last = result;
			result = (*result).next;
		} LA2: ;
	}
	result = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*) newObj((&NTI__B0xRsLi0eK4raPu9bd2tkcA_), sizeof(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA));
	(*result).Sup.Sup.m_type = (&NTI__GufRQq9c0miSybX3zBD4tyA_);
	(*result).h = h;
	(*result).s = mnewString(((NI) (length)));
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < length)) goto LA18;
				i = i_2;
				(*result).s->data[i] = identifier[i];
				i_2 += ((NI) 1);
			} LA18: ;
		}
	}
	(*result).next = (*ic).buckets[(idx)- 0];
	(*ic).buckets[(idx)- 0] = result;
	{
		if (!(id == ((NI) 0))) goto LA21_;
		(*ic).wordCounter += ((NI) 1);
		(*result).Sup.id = ((NI64)-((*ic).wordCounter));
	}
	goto LA19_;
	LA21_: ;
	{
		(*result).Sup.id = id;
	}
	LA19_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*, getIdent__9coBOmdXN09be4rJvXK6fQGQ)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier) {
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* result;
	NimStringDesc* T1_;
	NI T2_;
	NI T3_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T1_ = (NimStringDesc*)0;
	T1_ = identifier;
	T2_ = (NI)0;
	T2_ = (identifier ? identifier->Sup.len : 0);
	T3_ = (NI)0;
	T3_ = hashIgnoreStyle__6PCYkKlCNhq9cnRLnqWKkwQ_2(identifier);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = getIdent__jPDJlJukeiI0s9cOWXczqWg(ic, nimToCStringConv(T1_), T2_, T3_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*, getIdent__FXltLmSJ6smaT7i9cc3lKRw)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier, NI h) {
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* result;
	NimStringDesc* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T1_ = (NimStringDesc*)0;
	T1_ = identifier;
	result = getIdent__jPDJlJukeiI0s9cOWXczqWg(ic, nimToCStringConv(T1_), (identifier ? identifier->Sup.len : 0), h);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw*, newIdentCache__C9aDMlmEchTc9anNE0BtBTYg)(void) {
	tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* result;
	tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* T1_;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T2_;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T3_;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T4_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw*)0;
	T1_ = (tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw*)0;
	T1_ = (tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw*) newObj((&NTI__lnkYNZP9asc88UfiEGjLrbA_), sizeof(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw));
	result = T1_;
	T2_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T2_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ(result, ((NimStringDesc*) &TM__L3r6bVdeFMiI9cwmLpWIeKw_4));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).idAnon = T2_;
	(*result).wordCounter = ((NI) 1);
	T3_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T3_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ(result, ((NimStringDesc*) &TM__L3r6bVdeFMiI9cwmLpWIeKw_5));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).idDelegator = T3_;
	T4_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T4_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ(result, ((NimStringDesc*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).emptyIdent = T4_;
	{
		tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw s;
		NI res;
		s = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
		res = ((NI) 1);
		{
			while (1) {
				NimStringDesc* T8_;
				NI T9_;
				tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T10_;
				if (!(res <= ((NI) 287))) goto LA7;
				s = ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) (res));
				T8_ = (NimStringDesc*)0;
				T8_ = copyString(specialWords__jS3I1dUcvbZAEuApBSUHng[(s)- 0]);
				T9_ = (NI)0;
				T9_ = hashIgnoreStyle__6PCYkKlCNhq9cnRLnqWKkwQ_2(specialWords__jS3I1dUcvbZAEuApBSUHng[(s)- 0]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T10_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
				T10_ = getIdent__FXltLmSJ6smaT7i9cc3lKRw(result, T8_, T9_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*T10_).Sup.id = s;
				res += ((NI) 1);
			} LA7: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
static N_NIMCALL(void, Marker_tyRef__eH2Hxsu3PVPvJHXo2xTrZw)(void* p, NI op) {
	tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA* a;
	a = (tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA*)p;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw, whichKeyword__sZUQNPhNGEM8MllfcWvRiw)(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* id) {
	tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw result;
	result = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
	{
		if (!((*id).Sup.id < ((NI) 0))) goto LA3_;
		result = ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) ((*id).Sup.id));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_identsDatInit000)(void) {

/* section: NIM_merge_TYPE_INIT1 */
static TNimNode* TM__L3r6bVdeFMiI9cwmLpWIeKw_2_5[5];
static TNimNode* TM__L3r6bVdeFMiI9cwmLpWIeKw_3_3[3];
static TNimNode TM__L3r6bVdeFMiI9cwmLpWIeKw_0[11];

/* section: NIM_merge_TYPE_INIT3 */
NTI__TzLHS09bRH9a0TYLs39cqcNaw_.size = sizeof(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw);
NTI__TzLHS09bRH9a0TYLs39cqcNaw_.align = NIM_ALIGNOF(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw);
NTI__TzLHS09bRH9a0TYLs39cqcNaw_.kind = 18;
NTI__TzLHS09bRH9a0TYLs39cqcNaw_.base = 0;
NTI__TzLHS09bRH9a0TYLs39cqcNaw_.flags = 2;
TM__L3r6bVdeFMiI9cwmLpWIeKw_2_5[0] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[1];
NTI__iIXPrEsiKHiioLj0HSkQhA_.size = sizeof(tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA);
NTI__iIXPrEsiKHiioLj0HSkQhA_.align = NIM_ALIGNOF(tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA);
NTI__iIXPrEsiKHiioLj0HSkQhA_.kind = 17;
NTI__iIXPrEsiKHiioLj0HSkQhA_.base = (&NTI__ytyiCJqK439aF9cIibuRVpAg_);
NTI__iIXPrEsiKHiioLj0HSkQhA_.flags = 1;
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[2].kind = 1;
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[2].offset = offsetof(tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA, id);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[2].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[2].name = "id";
NTI__iIXPrEsiKHiioLj0HSkQhA_.node = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[2];
NTI__GufRQq9c0miSybX3zBD4tyA_.size = sizeof(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA);
NTI__GufRQq9c0miSybX3zBD4tyA_.align = NIM_ALIGNOF(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA);
NTI__GufRQq9c0miSybX3zBD4tyA_.kind = 17;
NTI__GufRQq9c0miSybX3zBD4tyA_.base = (&NTI__iIXPrEsiKHiioLj0HSkQhA_);
NTI__GufRQq9c0miSybX3zBD4tyA_.flags = 2;
TM__L3r6bVdeFMiI9cwmLpWIeKw_3_3[0] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[4];
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[4].kind = 1;
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[4].offset = offsetof(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA, s);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[4].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[4].name = "s";
TM__L3r6bVdeFMiI9cwmLpWIeKw_3_3[1] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[5];
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[5].kind = 1;
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[5].offset = offsetof(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA, next);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[5].typ = (&NTI__B0xRsLi0eK4raPu9bd2tkcA_);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[5].name = "next";
TM__L3r6bVdeFMiI9cwmLpWIeKw_3_3[2] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[6];
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[6].kind = 1;
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[6].offset = offsetof(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA, h);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[6].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[6].name = "h";
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[3].len = 3; TM__L3r6bVdeFMiI9cwmLpWIeKw_0[3].kind = 2; TM__L3r6bVdeFMiI9cwmLpWIeKw_0[3].sons = &TM__L3r6bVdeFMiI9cwmLpWIeKw_3_3[0];
NTI__GufRQq9c0miSybX3zBD4tyA_.node = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[3];
NTI__B0xRsLi0eK4raPu9bd2tkcA_.size = sizeof(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*);
NTI__B0xRsLi0eK4raPu9bd2tkcA_.align = NIM_ALIGNOF(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*);
NTI__B0xRsLi0eK4raPu9bd2tkcA_.kind = 22;
NTI__B0xRsLi0eK4raPu9bd2tkcA_.base = (&NTI__GufRQq9c0miSybX3zBD4tyA_);
NTI__B0xRsLi0eK4raPu9bd2tkcA_.flags = 2;
NTI__B0xRsLi0eK4raPu9bd2tkcA_.marker = Marker_tyRef__B0xRsLi0eK4raPu9bd2tkcA;
NTI__o8KQyTFgNQGvsJZYtdEsgA_.size = sizeof(tyArray__o8KQyTFgNQGvsJZYtdEsgA);
NTI__o8KQyTFgNQGvsJZYtdEsgA_.align = NIM_ALIGNOF(tyArray__o8KQyTFgNQGvsJZYtdEsgA);
NTI__o8KQyTFgNQGvsJZYtdEsgA_.kind = 16;
NTI__o8KQyTFgNQGvsJZYtdEsgA_.base = (&NTI__B0xRsLi0eK4raPu9bd2tkcA_);
NTI__o8KQyTFgNQGvsJZYtdEsgA_.flags = 2;
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[1].kind = 1;
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[1].offset = offsetof(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw, buckets);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[1].typ = (&NTI__o8KQyTFgNQGvsJZYtdEsgA_);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[1].name = "buckets";
TM__L3r6bVdeFMiI9cwmLpWIeKw_2_5[1] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[7];
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[7].kind = 1;
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[7].offset = offsetof(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw, wordCounter);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[7].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[7].name = "wordCounter";
TM__L3r6bVdeFMiI9cwmLpWIeKw_2_5[2] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[8];
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[8].kind = 1;
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[8].offset = offsetof(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw, idAnon);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[8].typ = (&NTI__B0xRsLi0eK4raPu9bd2tkcA_);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[8].name = "idAnon";
TM__L3r6bVdeFMiI9cwmLpWIeKw_2_5[3] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[9];
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[9].kind = 1;
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[9].offset = offsetof(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw, idDelegator);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[9].typ = (&NTI__B0xRsLi0eK4raPu9bd2tkcA_);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[9].name = "idDelegator";
TM__L3r6bVdeFMiI9cwmLpWIeKw_2_5[4] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[10];
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[10].kind = 1;
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[10].offset = offsetof(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw, emptyIdent);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[10].typ = (&NTI__B0xRsLi0eK4raPu9bd2tkcA_);
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[10].name = "emptyIdent";
TM__L3r6bVdeFMiI9cwmLpWIeKw_0[0].len = 5; TM__L3r6bVdeFMiI9cwmLpWIeKw_0[0].kind = 2; TM__L3r6bVdeFMiI9cwmLpWIeKw_0[0].sons = &TM__L3r6bVdeFMiI9cwmLpWIeKw_2_5[0];
NTI__TzLHS09bRH9a0TYLs39cqcNaw_.node = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[0];
NTI__lnkYNZP9asc88UfiEGjLrbA_.size = sizeof(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw*);
NTI__lnkYNZP9asc88UfiEGjLrbA_.align = NIM_ALIGNOF(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw*);
NTI__lnkYNZP9asc88UfiEGjLrbA_.kind = 22;
NTI__lnkYNZP9asc88UfiEGjLrbA_.base = (&NTI__TzLHS09bRH9a0TYLs39cqcNaw_);
NTI__lnkYNZP9asc88UfiEGjLrbA_.flags = 2;
NTI__lnkYNZP9asc88UfiEGjLrbA_.marker = Marker_tyRef__lnkYNZP9asc88UfiEGjLrbA;
NTI__eH2Hxsu3PVPvJHXo2xTrZw_.size = sizeof(tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA*);
NTI__eH2Hxsu3PVPvJHXo2xTrZw_.align = NIM_ALIGNOF(tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA*);
NTI__eH2Hxsu3PVPvJHXo2xTrZw_.kind = 22;
NTI__eH2Hxsu3PVPvJHXo2xTrZw_.base = (&NTI__iIXPrEsiKHiioLj0HSkQhA_);
NTI__eH2Hxsu3PVPvJHXo2xTrZw_.marker = Marker_tyRef__eH2Hxsu3PVPvJHXo2xTrZw;
}

