/* Generated by Nim Compiler v0.17.0 */
/*   (c) 2017 Andreas Rumpf */
/* The generated code is subject to the original license. */
/* Compiled for: Linux, arm, gcc */
/* Command for C compiler:
   gcc -c  -w -O3 -fno-strict-aliasing -fPIC  -I/build/nim/src/Nim-0.17.0/lib -o lib/nimcache/stdlib_pegs.o lib/nimcache/stdlib_pegs.c */
#define NIM_NEW_MANGLING_RULES
#define NIM_INTBITS 32

#include "nimbase.h"
#include <string.h>
#undef linux
#undef near
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct Node_0qztr5Keivtxacz23lA4IA Node_0qztr5Keivtxacz23lA4IA;
typedef struct NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA;
typedef struct TY_Wjn0aMA9aB3dP6CVOwwvGJg TY_Wjn0aMA9aB3dP6CVOwwvGJg;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct Cell_1zcF9cV8XIAtbN8h5HRUB8g Cell_1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct Captures_tZhlqR24EekS3w5Qr6WNZQ Captures_tZhlqR24EekS3w5Qr6WNZQ;
typedef struct TY_1v9bKyksXWMsm0vNwmZ4EuQ TY_1v9bKyksXWMsm0vNwmZ4EuQ;
typedef struct TY_sM4lkSb7zS6F7OVMvW9cffQ TY_sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct TY_9cWsBWKSkYcDRI59aMfjP0sw TY_9cWsBWKSkYcDRI59aMfjP0sw;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 PegKind_r9a6rAhGclsLWkBysfmtr6Q;
typedef NU8 TY_nmiMWKVIe46vacnhAFrQvw_Set[32];
struct  Node_0qztr5Keivtxacz23lA4IA  {
PegKind_r9a6rAhGclsLWkBysfmtr6Q kind;
union{
NimStringDesc* term;
NIM_CHAR ch;
TY_nmiMWKVIe46vacnhAFrQvw_Set* charChoice;
NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA* nt;
NI index;
TY_Wjn0aMA9aB3dP6CVOwwvGJg* sons;
} kindU;
};
typedef NU8 TNimKind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ_Set;
typedef N_NIMCALL_PTR(void, TY_ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, TY_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct  TNimType  {
NI size;
TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ_Set flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY_ojoeKfW4VYIm36I9cpDTQIg marker;
TY_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct  TNimNode  {
TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 NonTerminalFlag_raeF9a9anryo8cnwfITE0Glw_Set;
struct  NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA  {
NimStringDesc* name;
NI line;
NI col;
NonTerminalFlag_raeF9a9anryo8cnwfITE0Glw_Set flags;
Node_0qztr5Keivtxacz23lA4IA rule;
};
typedef NU8 NonTerminalFlag_raeF9a9anryo8cnwfITE0Glw;
typedef Node_0qztr5Keivtxacz23lA4IA TY_IpSDqxH4n0peVF4qTgPoJg[2];
struct  Cell_1zcF9cV8XIAtbN8h5HRUB8g  {
NI refcount;
TNimType* typ;
};
typedef NU8 TY_S8ib5N31oJbAkqOZTlNg5Q[8192];
struct TY_1v9bKyksXWMsm0vNwmZ4EuQ {
NI Field0;
NI Field1;
};
typedef TY_1v9bKyksXWMsm0vNwmZ4EuQ TY_fGQVl7HExKS7O8hYfcMlAQ[20];
struct  Captures_tZhlqR24EekS3w5Qr6WNZQ  {
TY_fGQVl7HExKS7O8hYfcMlAQ matches;
NI ml;
NI origStart;
};
typedef NimStringDesc* TY_Qdg3zgcNlmwGTTeVxyC9bbw[20];
struct TY_9cWsBWKSkYcDRI59aMfjP0sw {
Node_0qztr5Keivtxacz23lA4IA Field0;
NimStringDesc* Field1;
};
typedef struct {
N_NIMCALL_PTR(NimStringDesc*, ClP_0) (NI match, NI cnt, NimStringDesc** caps, NI capsLen_0, void* ClE_0);
void* ClE_0;
} TY_kuVtcXAXJL2ZgjFzPoOoiw;
typedef N_CLOSURE_PTR(NimStringDesc*, TM_YGOrctedenU9ao6jM7xmy6g_39) (NI match, NI cnt, NimStringDesc** caps, NI capsLen_0);
struct TY_Wjn0aMA9aB3dP6CVOwwvGJg {
  TGenericSeq Sup;
  Node_0qztr5Keivtxacz23lA4IA data[SEQ_DECL_SIZE];
};
struct TY_sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
N_LIB_EXPORT N_CDECL(void, npegstermStr)(NimStringDesc* t, Node_0qztr5Keivtxacz23lA4IA* Result);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nimrtl_copyString)(NimStringDesc* src);
N_LIB_EXPORT N_CDECL(void, npegstermIgnoreCase)(NimStringDesc* t, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegstermIgnoreStyle)(NimStringDesc* t, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegstermChar)(NIM_CHAR t, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegscharSet)(TY_nmiMWKVIe46vacnhAFrQvw_Set s, Node_0qztr5Keivtxacz23lA4IA* Result);
static N_NIMCALL(void, Marker_TY_DWDl83X3sWmMXGYAzF5Aug)(void* p, NI op);
N_LIB_EXPORT N_CDECL(void*, nimrtl_newObj)(TNimType* typ, NI size);
N_LIB_EXPORT N_CDECL(void, npegsOrderedChoice)(Node_0qztr5Keivtxacz23lA4IA* a, NI aLen_0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, nimrtl_nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_TY_ne9c8mGWiMWXBIOmu9cRFBTw)(void* p, NI op);
static N_NIMCALL(void, Marker_TY_Wjn0aMA9aB3dP6CVOwwvGJg)(void* p, NI op);
N_LIB_EXPORT N_CDECL(void*, nimrtl_newSeq)(TNimType* typ, NI len);
N_NIMCALL(void, addChoice_qURyx5Nv2W8KsnqxL9cBPXA)(Node_0qztr5Keivtxacz23lA4IA* dest, Node_0qztr5Keivtxacz23lA4IA elem);
static N_INLINE(NI, len_9cBHaUQpyQBLcQlYPEHxK8Apegs)(Node_0qztr5Keivtxacz23lA4IA a);
N_NOINLINE(void, chckNil)(void* p);
N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
static N_INLINE(void, add_tajfTWGbqsAYeYalZD83kQpegs)(Node_0qztr5Keivtxacz23lA4IA* d, Node_0qztr5Keivtxacz23lA4IA s);
N_NIMCALL(TGenericSeq*, incrSeqV2)(TGenericSeq* seq, NI elemSize);
N_NIMCALL(void, genericShallowAssign)(void* dest, void* src, TNimType* mt);
N_LIB_EXPORT N_CDECL(void, npegssequence)(Node_0qztr5Keivtxacz23lA4IA* a, NI aLen_0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_NIMCALL(void, addSequence_qURyx5Nv2W8KsnqxL9cBPXA_2)(Node_0qztr5Keivtxacz23lA4IA* dest, Node_0qztr5Keivtxacz23lA4IA elem);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest, void* source, NI size);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_LIB_EXPORT N_CDECL(void, npegsOptional)(Node_0qztr5Keivtxacz23lA4IA a, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsGreedyRep)(Node_0qztr5Keivtxacz23lA4IA a, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsSearch)(Node_0qztr5Keivtxacz23lA4IA a, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npgegsCapturedSearch)(Node_0qztr5Keivtxacz23lA4IA a, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsGreedyPosRep)(Node_0qztr5Keivtxacz23lA4IA a, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsAndPredicate)(Node_0qztr5Keivtxacz23lA4IA a, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsNotPredicate)(Node_0qztr5Keivtxacz23lA4IA a, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsCapture)(Node_0qztr5Keivtxacz23lA4IA a, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsbackref)(NI index, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsbackrefIgnoreCase)(NI index, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsbackrefIgnoreStyle)(NI index, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsnonterminal)(NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA* n, Node_0qztr5Keivtxacz23lA4IA* Result);
N_NIMCALL(NI, spaceCost_thhtdz88TSxzimHcXnMrxQ)(Node_0qztr5Keivtxacz23lA4IA n);
N_LIB_EXPORT N_CDECL(NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA*, npegsnewNonTerminal)(NimStringDesc* name, NI line, NI column);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nimrtl_copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr);
N_LIB_EXPORT N_CDECL(void, nimrtl_rtlAddZCT)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsToString)(Node_0qztr5Keivtxacz23lA4IA r);
N_NIMCALL(void, toStrAux_sdo4g6S2xvqYtEG6OihSJw)(Node_0qztr5Keivtxacz23lA4IA r, NimStringDesc** res);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nimrtl_resizeString)(NimStringDesc* dest, NI addlen);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, singleQuoteEsc_DZwoJxXJYe731ZwSPd9cbMw)(NimStringDesc* str);
N_NIMCALL(NimStringDesc*, esc_HFHwkP8FH7Igr7ChV6sh2w)(NIM_CHAR c, TY_nmiMWKVIe46vacnhAFrQvw_Set reserved);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nimrtl_nimCharToStr)(NIM_CHAR x);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nimrtl_nimIntToStr)(NI x);
N_NIMCALL(NimStringDesc*, singleQuoteEsc_B9cR1ihwJM5pxbOFaR0RkLw)(NIM_CHAR c);
N_NIMCALL(NimStringDesc*, charSetEsc_1Tg63uyJsbVNG6YaZy0kZg)(TY_nmiMWKVIe46vacnhAFrQvw_Set cc);
N_NIMCALL(NI, cardSet)(TY_S8ib5N31oJbAkqOZTlNg5Q s, NI len);
N_NIMCALL(NimStringDesc*, charSetEscAux_1Tg63uyJsbVNG6YaZy0kZg_2)(TY_nmiMWKVIe46vacnhAFrQvw_Set cc);
N_LIB_EXPORT N_CDECL(NI, npegsrawMatch)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA p, NI start, Captures_tZhlqR24EekS3w5Qr6WNZQ* c);
N_NIMCALL(NI, runeLenAt_jH70e00Xp2UeQoYgCeYbpQ)(NimStringDesc* s, NI i);
N_LIB_EXPORT N_CDECL(NIM_BOOL, nucisAlpha)(NI32 c);
N_LIB_EXPORT N_CDECL(NIM_BOOL, nucisLower)(NI32 c);
N_LIB_EXPORT N_CDECL(NIM_BOOL, nucisUpper)(NI32 c);
N_LIB_EXPORT N_CDECL(NIM_BOOL, nucisTitle)(NI32 c);
N_LIB_EXPORT N_CDECL(NIM_BOOL, nucisWhiteSpace)(NI32 c);
N_NIMCALL(NIM_BOOL, eqeq__XBungsmTumAhS9ay9aY1EmQQ)(NI32 a, NI32 b);
N_LIB_EXPORT N_CDECL(NI32, nuctoLower)(NI32 c);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI start, NI last);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI first, NI last);
N_LIB_EXPORT N_CDECL(NI, npegsmatchLenCapture)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NimStringDesc** matches, NI matchesLen_0, NI start);
N_LIB_EXPORT N_CDECL(NI, npegsmatchLen)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NI start);
N_LIB_EXPORT N_CDECL(NIM_BOOL, npegsmatchCapture)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NimStringDesc** matches, NI matchesLen_0, NI start);
N_LIB_EXPORT N_CDECL(NIM_BOOL, npegsmatch)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NI start);
N_LIB_EXPORT N_CDECL(NI, npegsfindCapture)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NimStringDesc** matches, NI matchesLen_0, NI start);
N_LIB_EXPORT N_CDECL(TY_1v9bKyksXWMsm0vNwmZ4EuQ, npegsfindBoundsCapture)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NimStringDesc** matches, NI matchesLen_0, NI start);
N_LIB_EXPORT N_CDECL(NI, npegsfind)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NI start);
N_LIB_EXPORT N_CDECL(TY_sM4lkSb7zS6F7OVMvW9cffQ*, npegsfindAll)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NI start);
N_LIB_EXPORT N_CDECL(NIM_BOOL, npegscontains)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NI start);
N_LIB_EXPORT N_CDECL(NIM_BOOL, npegscontainsCapture)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NimStringDesc** matches, NI matchesLen_0, NI start);
N_LIB_EXPORT N_CDECL(NIM_BOOL, npegsstartsWith)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA prefix, NI start);
N_LIB_EXPORT N_CDECL(NIM_BOOL, npegsendsWith)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA suffix, NI start);
N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsreplacef)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA sub, NimStringDesc* by);
N_LIB_EXPORT N_CDECL(void, nsuAddf)(NimStringDesc** s, NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s, NI start);
N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s, NI first);
N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsreplace)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA sub, NimStringDesc* by);
N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsparallelReplace)(NimStringDesc* s, TY_9cWsBWKSkYcDRI59aMfjP0sw* subs, NI subsLen_0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsreplacecb)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA sub, TY_kuVtcXAXJL2ZgjFzPoOoiw cb);
N_LIB_EXPORT N_CDECL(void, npegstransformFile)(NimStringDesc* infile, NimStringDesc* outfile, TY_9cWsBWKSkYcDRI59aMfjP0sw* subs, NI subsLen_0);
N_NIMCALL(NimStringDesc*, readFile_T9cm5LIRX2tKEH9aREBZ8A0w)(NimStringDesc* filename);
N_NIMCALL(void, writeFile_c1B29b0ZdDRPHc27YaKqwaA)(NimStringDesc* filename, NimStringDesc* content);
N_LIB_EXPORT N_CDECL(TY_sM4lkSb7zS6F7OVMvW9cffQ*, npegssplit)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA sep);
extern TNimType NTI_nmiMWKVIe46vacnhAFrQvw_;
TNimType NTI_HDqWPvEAxZK51ZcfaeQEdg_;
TNimType NTI_DWDl83X3sWmMXGYAzF5Aug_;
TNimType NTI_0qztr5Keivtxacz23lA4IA_;
TNimType NTI_r9a6rAhGclsLWkBysfmtr6Q_;
extern TNimType NTI_77mFvmsOLKik79ci2hXkHEg_;
TNimType NTI_VMn2tGRm8B9a9cqMEec3KPEA_;
extern TNimType NTI_rR5Bzr1D5krxoo1NcNyeMA_;
TNimType NTI_raeF9a9anryo8cnwfITE0Glw_;
TNimType NTI_lU0PfHKIn29cxb4xJ1TaXlA_;
TNimType NTI_ne9c8mGWiMWXBIOmu9cRFBTw_;
extern TNimType NTI_a9bIsIkdQvQMv0xYGrfgSag_;
TNimType NTI_Wjn0aMA9aB3dP6CVOwwvGJg_;
extern TNimType NTI_sM4lkSb7zS6F7OVMvW9cffQ_;
TNimNode* NimDT__0qztr5Keivtxacz23lA4IA_kind[34];
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_9, "", 0);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_10, "()", 2);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_11, "\\letter", 7);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_12, "\\lower", 6);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_13, "\\upper", 6);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_14, "\\title", 6);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_15, "\\white", 6);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_16, "\\n", 2);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_17, "\'", 1);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_18, "\\b", 2);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_19, "\\t", 2);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_20, "\\c", 2);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_21, "\\l", 2);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_22, "\\v", 2);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_23, "\\f", 2);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_24, "\\e", 2);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_25, "\\a", 2);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_26, "\\\\", 2);
static NIM_CONST TY_nmiMWKVIe46vacnhAFrQvw_Set TM_YGOrctedenU9ao6jM7xmy6g_27 = {
0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_28, "[^", 2);
static NIM_CONST TY_nmiMWKVIe46vacnhAFrQvw_Set TM_YGOrctedenU9ao6jM7xmy6g_29 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST TY_nmiMWKVIe46vacnhAFrQvw_Set TM_YGOrctedenU9ao6jM7xmy6g_30 = {
0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
;
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_31, " / ", 3);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_32, ".*", 2);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_33, "{@}", 3);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_34, "i$", 2);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_35, "y$", 2);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_36, " <- ", 4);
STRING_LITERAL(TM_YGOrctedenU9ao6jM7xmy6g_37, "\012", 1);
NIM_CONST TY_1v9bKyksXWMsm0vNwmZ4EuQ TM_YGOrctedenU9ao6jM7xmy6g_38 = {((NI) -1),
((NI) 0)}
;

N_LIB_EXPORT N_CDECL(void, npegstermStr)(NimStringDesc* t, Node_0qztr5Keivtxacz23lA4IA* Result) {
	{
		if (!!(((t ? t->Sup.len : 0) == ((NI) 1)))) goto LA3_;
		(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 9);
		unsureAsgnRef((void**) (&(*Result).kindU.term), nimrtl_copyString(t));
	}
	goto LA1_;
	LA3_: ;
	{
		(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 12);
		(*Result).kindU.ch = t->data[((NI) 0)];
	}
	LA1_: ;
}

N_LIB_EXPORT N_CDECL(void, npegstermIgnoreCase)(NimStringDesc* t, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 10);
	unsureAsgnRef((void**) (&(*Result).kindU.term), nimrtl_copyString(t));
}

N_LIB_EXPORT N_CDECL(void, npegstermIgnoreStyle)(NimStringDesc* t, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 11);
	unsureAsgnRef((void**) (&(*Result).kindU.term), nimrtl_copyString(t));
}

N_LIB_EXPORT N_CDECL(void, npegstermChar)(NIM_CHAR t, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 12);
	(*Result).kindU.ch = t;
}
static N_NIMCALL(void, Marker_TY_DWDl83X3sWmMXGYAzF5Aug)(void* p, NI op) {
	TY_nmiMWKVIe46vacnhAFrQvw_Set* a;
	a = (TY_nmiMWKVIe46vacnhAFrQvw_Set*)p;
}

N_LIB_EXPORT N_CDECL(void, npegscharSet)(TY_nmiMWKVIe46vacnhAFrQvw_Set s, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 13);
	unsureAsgnRef((void**) (&(*Result).kindU.charChoice), (TY_nmiMWKVIe46vacnhAFrQvw_Set*) nimrtl_newObj((&NTI_DWDl83X3sWmMXGYAzF5Aug_), sizeof(TY_nmiMWKVIe46vacnhAFrQvw_Set)));
	memcpy((void*)(*(*Result).kindU.charChoice), (NIM_CONST void*)s, 32);
}
static N_NIMCALL(void, Marker_TY_ne9c8mGWiMWXBIOmu9cRFBTw)(void* p, NI op) {
	NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA* a;
	a = (NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA*)p;
	nimrtl_nimGCvisit((void*)(*a).name, op);
	switch ((*a).rule.kind) {
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 0) ... ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 8):
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 9):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 10):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 11):
	nimrtl_nimGCvisit((void*)(*a).rule.kindU.term, op);
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 12):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 18):
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 13):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 19):
	nimrtl_nimGCvisit((void*)(*a).rule.kindU.charChoice, op);
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 14):
	nimrtl_nimGCvisit((void*)(*a).rule.kindU.nt, op);
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 25) ... ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 27):
	break;
	default:
	nimrtl_nimGCvisit((void*)(*a).rule.kindU.sons, op);
	break;
	} 
}
static N_NIMCALL(void, Marker_TY_Wjn0aMA9aB3dP6CVOwwvGJg)(void* p, NI op) {
	TY_Wjn0aMA9aB3dP6CVOwwvGJg* a;
	NI T1_;
	a = (TY_Wjn0aMA9aB3dP6CVOwwvGJg*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < a->Sup.len; T1_++) {
	switch (a->data[T1_].kind) {
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 0) ... ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 8):
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 9):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 10):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 11):
	nimrtl_nimGCvisit((void*)a->data[T1_].kindU.term, op);
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 12):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 18):
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 13):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 19):
	nimrtl_nimGCvisit((void*)a->data[T1_].kindU.charChoice, op);
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 14):
	nimrtl_nimGCvisit((void*)a->data[T1_].kindU.nt, op);
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 25) ... ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 27):
	break;
	default:
	nimrtl_nimGCvisit((void*)a->data[T1_].kindU.sons, op);
	break;
	} 
	}
}

static N_INLINE(NI, len_9cBHaUQpyQBLcQlYPEHxK8Apegs)(Node_0qztr5Keivtxacz23lA4IA a) {
	NI result;
{	result = (NI)0;
	result = (a.kindU.sons ? a.kindU.sons->Sup.len : 0);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

static N_INLINE(void, add_tajfTWGbqsAYeYalZD83kQpegs)(Node_0qztr5Keivtxacz23lA4IA* d, Node_0qztr5Keivtxacz23lA4IA s) {
	(*d).kindU.sons = (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) incrSeqV2(&((*d).kindU.sons)->Sup, sizeof(Node_0qztr5Keivtxacz23lA4IA));
	genericShallowAssign((void*)(&(*d).kindU.sons->data[(*d).kindU.sons->Sup.len]), (void*)(&s), (&NTI_0qztr5Keivtxacz23lA4IA_));
	++(*d).kindU.sons->Sup.len;
}

N_NIMCALL(void, addChoice_qURyx5Nv2W8KsnqxL9cBPXA)(Node_0qztr5Keivtxacz23lA4IA* dest, Node_0qztr5Keivtxacz23lA4IA elem) {
	NI L;
	NI T1_;
	T1_ = (NI)0;
	T1_ = len_9cBHaUQpyQBLcQlYPEHxK8Apegs((*dest));
	L = (NI)(T1_ - ((NI) 1));
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) 0) <= L);
		if (!(T4_)) goto LA5_;
		T4_ = ((*dest).kindU.sons->data[L].kind == ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 13));
		LA5_: ;
		if (!T4_) goto LA6_;
		switch (elem.kind) {
		case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 13):
		{
			NI T9_;
			TY_nmiMWKVIe46vacnhAFrQvw_Set T10_;
			T9_ = (NI)0;
			for (T9_ = 0; T9_ < 32; T9_++) 
  T10_[T9_] = (*(*dest).kindU.sons->data[L].kindU.charChoice)[T9_] | (*elem.kindU.charChoice)[T9_];
			chckNil((void*)(&(*dest).kindU.sons->data[L]));
			genericReset((void*)(&(*dest).kindU.sons->data[L]), (&NTI_0qztr5Keivtxacz23lA4IA_));
			npegscharSet(T10_, (&(*dest).kindU.sons->data[L]));
		}
		break;
		case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 12):
		{
			NI T12_;
			TY_nmiMWKVIe46vacnhAFrQvw_Set T13_;
			TY_nmiMWKVIe46vacnhAFrQvw_Set T14_;
			T12_ = (NI)0;
			memset(T13_, 0, sizeof(T13_));
			T13_[(NU)(((NU8)(elem.kindU.ch)))>>3] |=(1U<<((NU)(((NU8)(elem.kindU.ch)))&7U));
			for (T12_ = 0; T12_ < 32; T12_++) 
  T14_[T12_] = (*(*dest).kindU.sons->data[L].kindU.charChoice)[T12_] | T13_[T12_];
			chckNil((void*)(&(*dest).kindU.sons->data[L]));
			genericReset((void*)(&(*dest).kindU.sons->data[L]), (&NTI_0qztr5Keivtxacz23lA4IA_));
			npegscharSet(T14_, (&(*dest).kindU.sons->data[L]));
		}
		break;
		default:
		{
			add_tajfTWGbqsAYeYalZD83kQpegs(dest, elem);
		}
		break;
		}
	}
	goto LA2_;
	LA6_: ;
	{
		add_tajfTWGbqsAYeYalZD83kQpegs(dest, elem);
	}
	LA2_: ;
}

N_LIB_EXPORT N_CDECL(void, npegsOrderedChoice)(Node_0qztr5Keivtxacz23lA4IA* a, NI aLen_0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 16);
	unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg_), 0));
	{
		Node_0qztr5Keivtxacz23lA4IA x;
		NI i;
		memset((void*)(&x), 0, sizeof(x));
		i = ((NI) 0);
		{
			while (1) {
				if (!(i < aLen_0)) goto LA3;
				memcpy((void*)(&x), (NIM_CONST void*)(&a[i]), sizeof(x));
				{
					if (!(x.kind == ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 16))) goto LA6_;
					{
						Node_0qztr5Keivtxacz23lA4IA y;
						TY_Wjn0aMA9aB3dP6CVOwwvGJg* colontmp_;
						NI i_2;
						NI L;
						memset((void*)(&y), 0, sizeof(y));
						colontmp_ = (TY_Wjn0aMA9aB3dP6CVOwwvGJg*)0;
						colontmp_ = x.kindU.sons;
						i_2 = ((NI) 0);
						L = (colontmp_ ? colontmp_->Sup.len : 0);
						{
							while (1) {
								if (!(i_2 < L)) goto LA10;
								memcpy((void*)(&y), (NIM_CONST void*)(&colontmp_->data[i_2]), sizeof(y));
								addChoice_qURyx5Nv2W8KsnqxL9cBPXA(Result, y);
								i_2 += ((NI) 1);
							} LA10: ;
						}
					}
				}
				goto LA4_;
				LA6_: ;
				{
					addChoice_qURyx5Nv2W8KsnqxL9cBPXA(Result, x);
				}
				LA4_: ;
				i += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI T14_;
		T14_ = (NI)0;
		T14_ = len_9cBHaUQpyQBLcQlYPEHxK8Apegs((*Result));
		if (!(T14_ == ((NI) 1))) goto LA15_;
		genericShallowAssign((void*)Result, (void*)(&(*Result).kindU.sons->data[((NI) 0)]), (&NTI_0qztr5Keivtxacz23lA4IA_));
	}
	LA15_: ;
}

static N_INLINE(void, copyMem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	copyMem_fPlwH3r9agN9aEHB6yCPMh0wsystem(((void*) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
	(*dest).Sup.len += (*src).Sup.len;
}

static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
	(*dest).data[((*dest).Sup.len)- 0] = c;
	(*dest).data[((NI)((*dest).Sup.len + ((NI) 1)))- 0] = 0;
	(*dest).Sup.len += ((NI) 1);
}

N_NIMCALL(void, addSequence_qURyx5Nv2W8KsnqxL9cBPXA_2)(Node_0qztr5Keivtxacz23lA4IA* dest, Node_0qztr5Keivtxacz23lA4IA elem) {
	NI L;
	NI T1_;
	T1_ = (NI)0;
	T1_ = len_9cBHaUQpyQBLcQlYPEHxK8Apegs((*dest));
	L = (NI)(T1_ - ((NI) 1));
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) 0) <= L);
		if (!(T4_)) goto LA5_;
		T4_ = ((*dest).kindU.sons->data[L].kind == ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 9));
		LA5_: ;
		if (!T4_) goto LA6_;
		switch (elem.kind) {
		case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 9):
		{
			NimStringDesc* T9_;
			T9_ = (NimStringDesc*)0;
			T9_ = rawNewString((*dest).kindU.sons->data[L].kindU.term->Sup.len + elem.kindU.term->Sup.len + 0);
appendString(T9_, (*dest).kindU.sons->data[L].kindU.term);
appendString(T9_, elem.kindU.term);
			chckNil((void*)(&(*dest).kindU.sons->data[L]));
			genericReset((void*)(&(*dest).kindU.sons->data[L]), (&NTI_0qztr5Keivtxacz23lA4IA_));
			npegstermStr(T9_, (&(*dest).kindU.sons->data[L]));
		}
		break;
		case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 12):
		{
			NimStringDesc* T11_;
			T11_ = (NimStringDesc*)0;
			T11_ = rawNewString((*dest).kindU.sons->data[L].kindU.term->Sup.len + 1);
appendString(T11_, (*dest).kindU.sons->data[L].kindU.term);
appendChar(T11_, elem.kindU.ch);
			chckNil((void*)(&(*dest).kindU.sons->data[L]));
			genericReset((void*)(&(*dest).kindU.sons->data[L]), (&NTI_0qztr5Keivtxacz23lA4IA_));
			npegstermStr(T11_, (&(*dest).kindU.sons->data[L]));
		}
		break;
		default:
		{
			add_tajfTWGbqsAYeYalZD83kQpegs(dest, elem);
		}
		break;
		}
	}
	goto LA2_;
	LA6_: ;
	{
		add_tajfTWGbqsAYeYalZD83kQpegs(dest, elem);
	}
	LA2_: ;
}

N_LIB_EXPORT N_CDECL(void, npegssequence)(Node_0qztr5Keivtxacz23lA4IA* a, NI aLen_0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 15);
	unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg_), 0));
	{
		Node_0qztr5Keivtxacz23lA4IA x;
		NI i;
		memset((void*)(&x), 0, sizeof(x));
		i = ((NI) 0);
		{
			while (1) {
				if (!(i < aLen_0)) goto LA3;
				memcpy((void*)(&x), (NIM_CONST void*)(&a[i]), sizeof(x));
				{
					if (!(x.kind == ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 15))) goto LA6_;
					{
						Node_0qztr5Keivtxacz23lA4IA y;
						TY_Wjn0aMA9aB3dP6CVOwwvGJg* colontmp_;
						NI i_2;
						NI L;
						memset((void*)(&y), 0, sizeof(y));
						colontmp_ = (TY_Wjn0aMA9aB3dP6CVOwwvGJg*)0;
						colontmp_ = x.kindU.sons;
						i_2 = ((NI) 0);
						L = (colontmp_ ? colontmp_->Sup.len : 0);
						{
							while (1) {
								if (!(i_2 < L)) goto LA10;
								memcpy((void*)(&y), (NIM_CONST void*)(&colontmp_->data[i_2]), sizeof(y));
								addSequence_qURyx5Nv2W8KsnqxL9cBPXA_2(Result, y);
								i_2 += ((NI) 1);
							} LA10: ;
						}
					}
				}
				goto LA4_;
				LA6_: ;
				{
					addSequence_qURyx5Nv2W8KsnqxL9cBPXA_2(Result, x);
				}
				LA4_: ;
				i += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI T14_;
		T14_ = (NI)0;
		T14_ = len_9cBHaUQpyQBLcQlYPEHxK8Apegs((*Result));
		if (!(T14_ == ((NI) 1))) goto LA15_;
		genericShallowAssign((void*)Result, (void*)(&(*Result).kindU.sons->data[((NI) 0)]), (&NTI_0qztr5Keivtxacz23lA4IA_));
	}
	LA15_: ;
}

N_LIB_EXPORT N_CDECL(void, npegsOptional)(Node_0qztr5Keivtxacz23lA4IA a, Node_0qztr5Keivtxacz23lA4IA* Result) {
	{
		if (!(a.kind == ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 21) || a.kind == ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 17) || a.kind == ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 20) || a.kind == ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 18) || a.kind == ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 19))) goto LA3_;
		genericShallowAssign((void*)Result, (void*)(&a), (&NTI_0qztr5Keivtxacz23lA4IA_));
	}
	goto LA1_;
	LA3_: ;
	{
		(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 21);
		unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg_), 1));
		genericShallowAssign((void*)(&(*Result).kindU.sons->data[0]), (void*)(&a), (&NTI_0qztr5Keivtxacz23lA4IA_));
	}
	LA1_: ;
}

N_LIB_EXPORT N_CDECL(void, npegsGreedyRep)(Node_0qztr5Keivtxacz23lA4IA a, Node_0qztr5Keivtxacz23lA4IA* Result) {
	switch (a.kind) {
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 17):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 18):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 19):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 20):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 21):
	{
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 12):
	{
		(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 18);
		(*Result).kindU.ch = a.kindU.ch;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 13):
	{
		(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 19);
		unsureAsgnRef((void**) (&(*Result).kindU.charChoice), a.kindU.charChoice);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 1):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 2):
	{
		(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 20);
	}
	break;
	default:
	{
		(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 17);
		unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg_), 1));
		genericShallowAssign((void*)(&(*Result).kindU.sons->data[0]), (void*)(&a), (&NTI_0qztr5Keivtxacz23lA4IA_));
	}
	break;
	}
}

N_LIB_EXPORT N_CDECL(void, npegsSearch)(Node_0qztr5Keivtxacz23lA4IA a, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 28);
	unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg_), 1));
	genericShallowAssign((void*)(&(*Result).kindU.sons->data[0]), (void*)(&a), (&NTI_0qztr5Keivtxacz23lA4IA_));
}

N_LIB_EXPORT N_CDECL(void, npgegsCapturedSearch)(Node_0qztr5Keivtxacz23lA4IA a, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 29);
	unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg_), 1));
	genericShallowAssign((void*)(&(*Result).kindU.sons->data[0]), (void*)(&a), (&NTI_0qztr5Keivtxacz23lA4IA_));
}

N_LIB_EXPORT N_CDECL(void, npegsGreedyPosRep)(Node_0qztr5Keivtxacz23lA4IA a, Node_0qztr5Keivtxacz23lA4IA* Result) {
	TY_IpSDqxH4n0peVF4qTgPoJg T1_;
{	memset((void*)T1_, 0, sizeof(T1_));
	memcpy((void*)(&T1_[0]), (NIM_CONST void*)(&a), sizeof(T1_[0]));
	chckNil((void*)(&T1_[1]));
	memset((void*)(&T1_[1]), 0, sizeof(T1_[1]));
	npegsGreedyRep(a, (&T1_[1]));
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_0qztr5Keivtxacz23lA4IA_));
	npegssequence(T1_, 2, Result);
	goto BeforeRet_;
	}BeforeRet_: ;
}

N_LIB_EXPORT N_CDECL(void, npegsAndPredicate)(Node_0qztr5Keivtxacz23lA4IA a, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 22);
	unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg_), 1));
	genericShallowAssign((void*)(&(*Result).kindU.sons->data[0]), (void*)(&a), (&NTI_0qztr5Keivtxacz23lA4IA_));
}

N_LIB_EXPORT N_CDECL(void, npegsNotPredicate)(Node_0qztr5Keivtxacz23lA4IA a, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 23);
	unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg_), 1));
	genericShallowAssign((void*)(&(*Result).kindU.sons->data[0]), (void*)(&a), (&NTI_0qztr5Keivtxacz23lA4IA_));
}

N_LIB_EXPORT N_CDECL(void, npegsCapture)(Node_0qztr5Keivtxacz23lA4IA a, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 24);
	unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg_), 1));
	genericShallowAssign((void*)(&(*Result).kindU.sons->data[0]), (void*)(&a), (&NTI_0qztr5Keivtxacz23lA4IA_));
}

N_LIB_EXPORT N_CDECL(void, npegsbackref)(NI index, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 25);
	(*Result).kindU.index = ((NI) ((NI)(((NI) (index)) - ((NI) 1))));
}

N_LIB_EXPORT N_CDECL(void, npegsbackrefIgnoreCase)(NI index, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 26);
	(*Result).kindU.index = ((NI) ((NI)(((NI) (index)) - ((NI) 1))));
}

N_LIB_EXPORT N_CDECL(void, npegsbackrefIgnoreStyle)(NI index, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 27);
	(*Result).kindU.index = ((NI) ((NI)(((NI) (index)) - ((NI) 1))));
}

N_NIMCALL(NI, spaceCost_thhtdz88TSxzimHcXnMrxQ)(Node_0qztr5Keivtxacz23lA4IA n) {
	NI result;
	result = (NI)0;
	switch (n.kind) {
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 0):
	{
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 9):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 10):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 11):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 12):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 18):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 13):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 19):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 1) ... ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 8):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 20):
	{
		result = ((NI) 1);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 14):
	{
		result = ((NI) 6);
	}
	break;
	default:
	{
		{
			NI i;
			NI colontmp_;
			NI T6_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T6_ = (NI)0;
			T6_ = len_9cBHaUQpyQBLcQlYPEHxK8Apegs(n);
			colontmp_ = (NI)(T6_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					NI T9_;
					if (!(res <= colontmp_)) goto LA8;
					i = res;
					T9_ = (NI)0;
					T9_ = spaceCost_thhtdz88TSxzimHcXnMrxQ(n.kindU.sons->data[i]);
					result += T9_;
					{
						if (!(((NI) 5) <= result)) goto LA12_;
						goto LA5;
					}
					LA12_: ;
					res += ((NI) 1);
				} LA8: ;
			}
		} LA5: ;
	}
	break;
	}
	return result;
}

N_LIB_EXPORT N_CDECL(void, npegsnonterminal)(NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA* n, Node_0qztr5Keivtxacz23lA4IA* Result) {
	{
		NIM_BOOL T3_;
		NI T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*n).flags &(1U<<((NU)(((NonTerminalFlag_raeF9a9anryo8cnwfITE0Glw) 0))&7U)))!=0);
		if (!(T3_)) goto LA4_;
		T5_ = (NI)0;
		T5_ = spaceCost_thhtdz88TSxzimHcXnMrxQ((*n).rule);
		T3_ = (T5_ < ((NI) 5));
		LA4_: ;
		if (!T3_) goto LA6_;
		genericShallowAssign((void*)Result, (void*)(&(*n).rule), (&NTI_0qztr5Keivtxacz23lA4IA_));
	}
	goto LA1_;
	LA6_: ;
	{
		(*Result).kind = ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 14);
		unsureAsgnRef((void**) (&(*Result).kindU.nt), n);
	}
	LA1_: ;
}

static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr) {
	Cell_1zcF9cV8XIAtbN8h5HRUB8g* result;
	result = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result = ((Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU32)(((NI) (usr))) - (NU32)(((NI)sizeof(Cell_1zcF9cV8XIAtbN8h5HRUB8g))))));
	return result;
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	Cell_1zcF9cV8XIAtbN8h5HRUB8g* c;
	c = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem(p);
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3_;
		nimrtl_rtlAddZCT(c);
	}
	LA3_: ;
}

N_LIB_EXPORT N_CDECL(NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA*, npegsnewNonTerminal)(NimStringDesc* name, NI line, NI column) {
	NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA* result;
	NimStringDesc* T1_;
	result = (NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA*)0;
	result = (NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA*) nimrtl_newObj((&NTI_ne9c8mGWiMWXBIOmu9cRFBTw_), sizeof(NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA));
	T1_ = (NimStringDesc*)0;
	T1_ = (*result).name; (*result).name = nimrtl_copyStringRC1(name);
	if (T1_) nimGCunrefNoCycle(T1_);
	(*result).line = line;
	(*result).col = column;
	return result;
}

N_NIMCALL(NimStringDesc*, esc_HFHwkP8FH7Igr7ChV6sh2w)(NIM_CHAR c, TY_nmiMWKVIe46vacnhAFrQvw_Set reserved) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	switch (((NU8)(c))) {
	case 8:
	{
		result = nimrtl_copyString(((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_18));
	}
	break;
	case 9:
	{
		result = nimrtl_copyString(((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_19));
	}
	break;
	case 13:
	{
		result = nimrtl_copyString(((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_20));
	}
	break;
	case 10:
	{
		result = nimrtl_copyString(((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_21));
	}
	break;
	case 11:
	{
		result = nimrtl_copyString(((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_22));
	}
	break;
	case 12:
	{
		result = nimrtl_copyString(((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_23));
	}
	break;
	case 27:
	{
		result = nimrtl_copyString(((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_24));
	}
	break;
	case 7:
	{
		result = nimrtl_copyString(((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_25));
	}
	break;
	case 92:
	{
		result = nimrtl_copyString(((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_26));
	}
	break;
	case 97 ... 122:
	case 65 ... 90:
	case 48 ... 57:
	case 95:
	{
		result = nimrtl_nimCharToStr(c);
	}
	break;
	default:
	{
		{
			NIM_BOOL T14_;
			NimStringDesc* T18_;
			NimStringDesc* T19_;
			T14_ = (NIM_BOOL)0;
			T14_ = ((NU8)(c) < (NU8)(32));
			if (T14_) goto LA15_;
			T14_ = ((NU8)(128) <= (NU8)(c));
			LA15_: ;
			if (!T14_) goto LA16_;
			T18_ = (NimStringDesc*)0;
			T19_ = (NimStringDesc*)0;
			T19_ = nimrtl_nimIntToStr(((NI) (((NU8)(c)))));
			T18_ = rawNewString(T19_->Sup.len + 1);
appendChar(T18_, 92);
appendString(T18_, T19_);
			result = T18_;
		}
		goto LA12_;
		LA16_: ;
		{
			NimStringDesc* T23_;
			if (!((reserved[(NU)(((NU8)(c)))>>3] &(1U<<((NU)(((NU8)(c)))&7U)))!=0)) goto LA21_;
			T23_ = (NimStringDesc*)0;
			T23_ = rawNewString(2);
appendChar(T23_, 92);
appendChar(T23_, c);
			result = T23_;
		}
		goto LA12_;
		LA21_: ;
		{
			result = nimrtl_nimCharToStr(c);
		}
		LA12_: ;
	}
	break;
	}
	return result;
}

N_NIMCALL(NimStringDesc*, singleQuoteEsc_DZwoJxXJYe731ZwSPd9cbMw)(NimStringDesc* str) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = nimrtl_copyString(((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_17));
	{
		NIM_CHAR c;
		NI i;
		NI L;
		c = (NIM_CHAR)0;
		i = ((NI) 0);
		L = (str ? str->Sup.len : 0);
		{
			while (1) {
				NimStringDesc* T4_;
				if (!(i < L)) goto LA3;
				c = str->data[i];
				T4_ = (NimStringDesc*)0;
				T4_ = esc_HFHwkP8FH7Igr7ChV6sh2w(c, TM_YGOrctedenU9ao6jM7xmy6g_27);
				result = nimrtl_resizeString(result, T4_->Sup.len + 0);
appendString(result, T4_);
				i += ((NI) 1);
			} LA3: ;
		}
	}
	result = addChar(result, 39);
	return result;
}

N_NIMCALL(NimStringDesc*, singleQuoteEsc_B9cR1ihwJM5pxbOFaR0RkLw)(NIM_CHAR c) {
	NimStringDesc* result;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
{	result = (NimStringDesc*)0;
	T1_ = (NimStringDesc*)0;
	T2_ = (NimStringDesc*)0;
	T2_ = esc_HFHwkP8FH7Igr7ChV6sh2w(c, TM_YGOrctedenU9ao6jM7xmy6g_27);
	T1_ = rawNewString(T2_->Sup.len + 2);
appendString(T1_, ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_17));
appendString(T1_, T2_);
appendString(T1_, ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_17));
	result = T1_;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_NIMCALL(NimStringDesc*, charSetEscAux_1Tg63uyJsbVNG6YaZy0kZg_2)(TY_nmiMWKVIe46vacnhAFrQvw_Set cc) {
	NimStringDesc* result;
	NI c1;
	result = (NimStringDesc*)0;
	result = nimrtl_copyString(((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_9));
	c1 = ((NI) 0);
	{
		while (1) {
			if (!(c1 <= ((NI) 255))) goto LA2;
			{
				NI c2;
				if (!((cc[(NU)(((NU8)(((NIM_CHAR) (((NI) (c1)))))))>>3] &(1U<<((NU)(((NU8)(((NIM_CHAR) (((NI) (c1)))))))&7U)))!=0)) goto LA5_;
				c2 = c1;
				{
					while (1) {
						NIM_BOOL T9_;
						T9_ = (NIM_BOOL)0;
						T9_ = (c2 < ((NI) 255));
						if (!(T9_)) goto LA10_;
						T9_ = ((cc[(NU)(((NU8)(((NIM_CHAR) (((NI) ((NI)(c2 + ((NI) 1)))))))))>>3] &(1U<<((NU)(((NU8)(((NIM_CHAR) (((NI) ((NI)(c2 + ((NI) 1)))))))))&7U)))!=0);
						LA10_: ;
						if (!T9_) goto LA8;
						c2 += ((NI) 1);
					} LA8: ;
				}
				{
					NimStringDesc* T15_;
					if (!(c1 == c2)) goto LA13_;
					T15_ = (NimStringDesc*)0;
					T15_ = esc_HFHwkP8FH7Igr7ChV6sh2w(((NIM_CHAR) (((NI) (c1)))), TM_YGOrctedenU9ao6jM7xmy6g_29);
					result = nimrtl_resizeString(result, T15_->Sup.len + 0);
appendString(result, T15_);
				}
				goto LA11_;
				LA13_: ;
				{
					NimStringDesc* T19_;
					NimStringDesc* T20_;
					NimStringDesc* T21_;
					if (!(c2 == (NI)(c1 + ((NI) 1)))) goto LA17_;
					T19_ = (NimStringDesc*)0;
					T20_ = (NimStringDesc*)0;
					T20_ = esc_HFHwkP8FH7Igr7ChV6sh2w(((NIM_CHAR) (((NI) (c1)))), TM_YGOrctedenU9ao6jM7xmy6g_29);
					T21_ = (NimStringDesc*)0;
					T21_ = esc_HFHwkP8FH7Igr7ChV6sh2w(((NIM_CHAR) (((NI) (c2)))), TM_YGOrctedenU9ao6jM7xmy6g_29);
					T19_ = rawNewString(T20_->Sup.len + T21_->Sup.len + 0);
appendString(T19_, T20_);
appendString(T19_, T21_);
					result = nimrtl_resizeString(result, T19_->Sup.len + 0);
appendString(result, T19_);
				}
				goto LA11_;
				LA17_: ;
				{
					NimStringDesc* T23_;
					NimStringDesc* T24_;
					NimStringDesc* T25_;
					T23_ = (NimStringDesc*)0;
					T24_ = (NimStringDesc*)0;
					T24_ = esc_HFHwkP8FH7Igr7ChV6sh2w(((NIM_CHAR) (((NI) (c1)))), TM_YGOrctedenU9ao6jM7xmy6g_29);
					T25_ = (NimStringDesc*)0;
					T25_ = esc_HFHwkP8FH7Igr7ChV6sh2w(((NIM_CHAR) (((NI) (c2)))), TM_YGOrctedenU9ao6jM7xmy6g_29);
					T23_ = rawNewString(T24_->Sup.len + T25_->Sup.len + 1);
appendString(T23_, T24_);
appendChar(T23_, 45);
appendString(T23_, T25_);
					result = nimrtl_resizeString(result, T23_->Sup.len + 0);
appendString(result, T23_);
				}
				LA11_: ;
				c1 = c2;
			}
			LA5_: ;
			c1 += ((NI) 1);
		} LA2: ;
	}
	return result;
}

N_NIMCALL(NimStringDesc*, charSetEsc_1Tg63uyJsbVNG6YaZy0kZg)(TY_nmiMWKVIe46vacnhAFrQvw_Set cc) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	{
		NimStringDesc* T5_;
		NI T6_;
		TY_nmiMWKVIe46vacnhAFrQvw_Set T7_;
		NimStringDesc* T8_;
		if (!(((NI) 192) <= cardSet(cc, 32))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T6_ = (NI)0;
		for (T6_ = 0; T6_ < 32; T6_++) 
  T7_[T6_] = TM_YGOrctedenU9ao6jM7xmy6g_30[T6_] & ~ cc[T6_];
		T8_ = (NimStringDesc*)0;
		T8_ = charSetEscAux_1Tg63uyJsbVNG6YaZy0kZg_2(T7_);
		T5_ = rawNewString(T8_->Sup.len + 3);
appendString(T5_, ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_28));
appendString(T5_, T8_);
appendChar(T5_, 93);
		result = T5_;
	}
	goto LA1_;
	LA3_: ;
	{
		NimStringDesc* T10_;
		NimStringDesc* T11_;
		T10_ = (NimStringDesc*)0;
		T11_ = (NimStringDesc*)0;
		T11_ = charSetEscAux_1Tg63uyJsbVNG6YaZy0kZg_2(cc);
		T10_ = rawNewString(T11_->Sup.len + 2);
appendChar(T10_, 91);
appendString(T10_, T11_);
appendChar(T10_, 93);
		result = T10_;
	}
	LA1_: ;
	return result;
}

N_NIMCALL(void, toStrAux_sdo4g6S2xvqYtEG6OihSJw)(Node_0qztr5Keivtxacz23lA4IA r, NimStringDesc** res) {
	switch (r.kind) {
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 0):
	{
		(*res) = nimrtl_resizeString((*res), 2);
appendString((*res), ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_10));
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 1):
	{
		(*res) = addChar((*res), 46);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 2):
	{
		(*res) = addChar((*res), 95);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 4):
	{
		(*res) = nimrtl_resizeString((*res), 7);
appendString((*res), ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_11));
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 5):
	{
		(*res) = nimrtl_resizeString((*res), 6);
appendString((*res), ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_12));
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 6):
	{
		(*res) = nimrtl_resizeString((*res), 6);
appendString((*res), ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_13));
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 7):
	{
		(*res) = nimrtl_resizeString((*res), 6);
appendString((*res), ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_14));
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 8):
	{
		(*res) = nimrtl_resizeString((*res), 6);
appendString((*res), ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_15));
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 3):
	{
		(*res) = nimrtl_resizeString((*res), 2);
appendString((*res), ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_16));
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 9):
	{
		NimStringDesc* T11_;
		T11_ = (NimStringDesc*)0;
		T11_ = singleQuoteEsc_DZwoJxXJYe731ZwSPd9cbMw(r.kindU.term);
		(*res) = nimrtl_resizeString((*res), T11_->Sup.len + 0);
appendString((*res), T11_);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 10):
	{
		NimStringDesc* T13_;
		(*res) = addChar((*res), 105);
		T13_ = (NimStringDesc*)0;
		T13_ = singleQuoteEsc_DZwoJxXJYe731ZwSPd9cbMw(r.kindU.term);
		(*res) = nimrtl_resizeString((*res), T13_->Sup.len + 0);
appendString((*res), T13_);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 11):
	{
		NimStringDesc* T15_;
		(*res) = addChar((*res), 121);
		T15_ = (NimStringDesc*)0;
		T15_ = singleQuoteEsc_DZwoJxXJYe731ZwSPd9cbMw(r.kindU.term);
		(*res) = nimrtl_resizeString((*res), T15_->Sup.len + 0);
appendString((*res), T15_);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 12):
	{
		NimStringDesc* T17_;
		T17_ = (NimStringDesc*)0;
		T17_ = singleQuoteEsc_B9cR1ihwJM5pxbOFaR0RkLw(r.kindU.ch);
		(*res) = nimrtl_resizeString((*res), T17_->Sup.len + 0);
appendString((*res), T17_);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 13):
	{
		NimStringDesc* T19_;
		T19_ = (NimStringDesc*)0;
		T19_ = charSetEsc_1Tg63uyJsbVNG6YaZy0kZg((*r.kindU.charChoice));
		(*res) = nimrtl_resizeString((*res), T19_->Sup.len + 0);
appendString((*res), T19_);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 14):
	{
		(*res) = nimrtl_resizeString((*res), (*r.kindU.nt).name->Sup.len + 0);
appendString((*res), (*r.kindU.nt).name);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 15):
	{
		(*res) = addChar((*res), 40);
		toStrAux_sdo4g6S2xvqYtEG6OihSJw(r.kindU.sons->data[((NI) 0)], res);
		{
			NI i;
			NI colontmp_;
			NI res_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (r.kindU.sons ? (r.kindU.sons->Sup.len-1) : -1);
			res_2 = ((NI) 1);
			{
				while (1) {
					if (!(res_2 <= colontmp_)) goto LA24;
					i = res_2;
					(*res) = addChar((*res), 32);
					toStrAux_sdo4g6S2xvqYtEG6OihSJw(r.kindU.sons->data[i], res);
					res_2 += ((NI) 1);
				} LA24: ;
			}
		}
		(*res) = addChar((*res), 41);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 16):
	{
		(*res) = addChar((*res), 40);
		toStrAux_sdo4g6S2xvqYtEG6OihSJw(r.kindU.sons->data[((NI) 0)], res);
		{
			NI i_2;
			NI colontmp__2;
			NI res_3;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = (r.kindU.sons ? (r.kindU.sons->Sup.len-1) : -1);
			res_3 = ((NI) 1);
			{
				while (1) {
					if (!(res_3 <= colontmp__2)) goto LA28;
					i_2 = res_3;
					(*res) = nimrtl_resizeString((*res), 3);
appendString((*res), ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_31));
					toStrAux_sdo4g6S2xvqYtEG6OihSJw(r.kindU.sons->data[i_2], res);
					res_3 += ((NI) 1);
				} LA28: ;
			}
		}
		(*res) = addChar((*res), 41);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 17):
	{
		toStrAux_sdo4g6S2xvqYtEG6OihSJw(r.kindU.sons->data[((NI) 0)], res);
		(*res) = addChar((*res), 42);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 18):
	{
		NimStringDesc* T31_;
		T31_ = (NimStringDesc*)0;
		T31_ = singleQuoteEsc_B9cR1ihwJM5pxbOFaR0RkLw(r.kindU.ch);
		(*res) = nimrtl_resizeString((*res), T31_->Sup.len + 0);
appendString((*res), T31_);
		(*res) = addChar((*res), 42);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 19):
	{
		NimStringDesc* T33_;
		T33_ = (NimStringDesc*)0;
		T33_ = charSetEsc_1Tg63uyJsbVNG6YaZy0kZg((*r.kindU.charChoice));
		(*res) = nimrtl_resizeString((*res), T33_->Sup.len + 0);
appendString((*res), T33_);
		(*res) = addChar((*res), 42);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 20):
	{
		(*res) = nimrtl_resizeString((*res), 2);
appendString((*res), ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_32));
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 21):
	{
		toStrAux_sdo4g6S2xvqYtEG6OihSJw(r.kindU.sons->data[((NI) 0)], res);
		(*res) = addChar((*res), 63);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 22):
	{
		(*res) = addChar((*res), 38);
		toStrAux_sdo4g6S2xvqYtEG6OihSJw(r.kindU.sons->data[((NI) 0)], res);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 23):
	{
		(*res) = addChar((*res), 33);
		toStrAux_sdo4g6S2xvqYtEG6OihSJw(r.kindU.sons->data[((NI) 0)], res);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 28):
	{
		(*res) = addChar((*res), 64);
		toStrAux_sdo4g6S2xvqYtEG6OihSJw(r.kindU.sons->data[((NI) 0)], res);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 29):
	{
		(*res) = nimrtl_resizeString((*res), 3);
appendString((*res), ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_33));
		toStrAux_sdo4g6S2xvqYtEG6OihSJw(r.kindU.sons->data[((NI) 0)], res);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 24):
	{
		(*res) = addChar((*res), 123);
		toStrAux_sdo4g6S2xvqYtEG6OihSJw(r.kindU.sons->data[((NI) 0)], res);
		(*res) = addChar((*res), 125);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 25):
	{
		NimStringDesc* T42_;
		(*res) = addChar((*res), 36);
		T42_ = (NimStringDesc*)0;
		T42_ = nimrtl_nimIntToStr(((NI) (r.kindU.index)));
		(*res) = nimrtl_resizeString((*res), T42_->Sup.len + 0);
appendString((*res), T42_);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 26):
	{
		NimStringDesc* T44_;
		(*res) = nimrtl_resizeString((*res), 2);
appendString((*res), ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_34));
		T44_ = (NimStringDesc*)0;
		T44_ = nimrtl_nimIntToStr(((NI) (r.kindU.index)));
		(*res) = nimrtl_resizeString((*res), T44_->Sup.len + 0);
appendString((*res), T44_);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 27):
	{
		NimStringDesc* T46_;
		(*res) = nimrtl_resizeString((*res), 2);
appendString((*res), ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_35));
		T46_ = (NimStringDesc*)0;
		T46_ = nimrtl_nimIntToStr(((NI) (r.kindU.index)));
		(*res) = nimrtl_resizeString((*res), T46_->Sup.len + 0);
appendString((*res), T46_);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 30):
	{
		toStrAux_sdo4g6S2xvqYtEG6OihSJw(r.kindU.sons->data[((NI) 0)], res);
		(*res) = nimrtl_resizeString((*res), 4);
appendString((*res), ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_36));
		toStrAux_sdo4g6S2xvqYtEG6OihSJw(r.kindU.sons->data[((NI) 1)], res);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 31):
	{
		{
			NI i_3;
			NI colontmp__3;
			NI res_4;
			i_3 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = (r.kindU.sons ? (r.kindU.sons->Sup.len-1) : -1);
			res_4 = ((NI) 0);
			{
				while (1) {
					if (!(res_4 <= colontmp__3)) goto LA51;
					i_3 = res_4;
					toStrAux_sdo4g6S2xvqYtEG6OihSJw(r.kindU.sons->data[i_3], res);
					(*res) = nimrtl_resizeString((*res), 1);
appendString((*res), ((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_37));
					res_4 += ((NI) 1);
				} LA51: ;
			}
		}
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 32):
	{
		(*res) = addChar((*res), 94);
	}
	break;
	}
}

N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsToString)(Node_0qztr5Keivtxacz23lA4IA r) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = nimrtl_copyString(((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_9));
	toStrAux_sdo4g6S2xvqYtEG6OihSJw(r, (&result));
	return result;
}

N_LIB_EXPORT N_CDECL(NI, npegsrawMatch)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA p, NI start, Captures_tZhlqR24EekS3w5Qr6WNZQ* c) {
	NI result;
{	result = (NI)0;
	switch (p.kind) {
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 0):
	{
		result = ((NI) 0);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 1):
	{
		{
			if (!!(((NU8)(s->data[start]) == (NU8)(0)))) goto LA5_;
			result = ((NI) 1);
		}
		goto LA3_;
		LA5_: ;
		{
			result = ((NI) -1);
		}
		LA3_: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 2):
	{
		{
			if (!!(((NU8)(s->data[start]) == (NU8)(0)))) goto LA11_;
			result = runeLenAt_jH70e00Xp2UeQoYgCeYbpQ(s, ((NI) (start)));
		}
		goto LA9_;
		LA11_: ;
		{
			result = ((NI) -1);
		}
		LA9_: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 4):
	{
		{
			NI32 a;
			if (!!(((NU8)(s->data[start]) == (NU8)(0)))) goto LA17_;
			a = (NI32)0;
			result = start;
			{
				if (!((NU32)(((NI) (((NU8)(s->data[result]))))) <= (NU32)(((NI) 127)))) goto LA21_;
				a = ((NI32) (((NU8)(s->data[result]))));
				result += ((NI) 1);
			}
			goto LA19_;
			LA21_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 5))) == ((NI) 6))) goto LA24_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 2)))) goto LA28_;
					a = ((NI32) ((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 31))))) << (NU32)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63)))))));
					result += ((NI) 2);
				}
				goto LA26_;
				LA28_: ;
				{
					a = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA26_: ;
			}
			goto LA19_;
			LA24_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 4))) == ((NI) 14))) goto LA32_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 3)))) goto LA36_;
					a = ((NI32) ((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 15))))) << (NU32)(((NI) 12))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63)))))));
					result += ((NI) 3);
				}
				goto LA34_;
				LA36_: ;
				{
					a = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA34_: ;
			}
			goto LA19_;
			LA32_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 3))) == ((NI) 30))) goto LA40_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 4)))) goto LA44_;
					a = ((NI32) ((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 7))))) << (NU32)(((NI) 18))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63)))))));
					result += ((NI) 4);
				}
				goto LA42_;
				LA44_: ;
				{
					a = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA42_: ;
			}
			goto LA19_;
			LA40_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 2))) == ((NI) 62))) goto LA48_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 5)))) goto LA52_;
					a = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 3))))) << (NU32)(((NI) 24))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 4))])))) & ((NI) 63)))))));
					result += ((NI) 5);
				}
				goto LA50_;
				LA52_: ;
				{
					a = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA50_: ;
			}
			goto LA19_;
			LA48_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 1))) == ((NI) 126))) goto LA56_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 6)))) goto LA60_;
					a = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 1))))) << (NU32)(((NI) 30))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 24)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 4))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 5))])))) & ((NI) 63)))))));
					result += ((NI) 6);
				}
				goto LA58_;
				LA60_: ;
				{
					a = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA58_: ;
			}
			goto LA19_;
			LA56_: ;
			{
				a = ((NI32) (((NU8)(s->data[result]))));
				result += ((NI) 1);
			}
			LA19_: ;
			{
				NIM_BOOL T66_;
				T66_ = (NIM_BOOL)0;
				T66_ = nucisAlpha(a);
				if (!T66_) goto LA67_;
				result -= start;
			}
			goto LA64_;
			LA67_: ;
			{
				result = ((NI) -1);
			}
			LA64_: ;
		}
		goto LA15_;
		LA17_: ;
		{
			result = ((NI) -1);
		}
		LA15_: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 5):
	{
		{
			NI32 a_2;
			if (!!(((NU8)(s->data[start]) == (NU8)(0)))) goto LA74_;
			a_2 = (NI32)0;
			result = start;
			{
				if (!((NU32)(((NI) (((NU8)(s->data[result]))))) <= (NU32)(((NI) 127)))) goto LA78_;
				a_2 = ((NI32) (((NU8)(s->data[result]))));
				result += ((NI) 1);
			}
			goto LA76_;
			LA78_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 5))) == ((NI) 6))) goto LA81_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 2)))) goto LA85_;
					a_2 = ((NI32) ((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 31))))) << (NU32)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63)))))));
					result += ((NI) 2);
				}
				goto LA83_;
				LA85_: ;
				{
					a_2 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA83_: ;
			}
			goto LA76_;
			LA81_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 4))) == ((NI) 14))) goto LA89_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 3)))) goto LA93_;
					a_2 = ((NI32) ((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 15))))) << (NU32)(((NI) 12))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63)))))));
					result += ((NI) 3);
				}
				goto LA91_;
				LA93_: ;
				{
					a_2 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA91_: ;
			}
			goto LA76_;
			LA89_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 3))) == ((NI) 30))) goto LA97_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 4)))) goto LA101_;
					a_2 = ((NI32) ((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 7))))) << (NU32)(((NI) 18))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63)))))));
					result += ((NI) 4);
				}
				goto LA99_;
				LA101_: ;
				{
					a_2 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA99_: ;
			}
			goto LA76_;
			LA97_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 2))) == ((NI) 62))) goto LA105_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 5)))) goto LA109_;
					a_2 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 3))))) << (NU32)(((NI) 24))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 4))])))) & ((NI) 63)))))));
					result += ((NI) 5);
				}
				goto LA107_;
				LA109_: ;
				{
					a_2 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA107_: ;
			}
			goto LA76_;
			LA105_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 1))) == ((NI) 126))) goto LA113_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 6)))) goto LA117_;
					a_2 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 1))))) << (NU32)(((NI) 30))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 24)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 4))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 5))])))) & ((NI) 63)))))));
					result += ((NI) 6);
				}
				goto LA115_;
				LA117_: ;
				{
					a_2 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA115_: ;
			}
			goto LA76_;
			LA113_: ;
			{
				a_2 = ((NI32) (((NU8)(s->data[result]))));
				result += ((NI) 1);
			}
			LA76_: ;
			{
				NIM_BOOL T123_;
				T123_ = (NIM_BOOL)0;
				T123_ = nucisLower(a_2);
				if (!T123_) goto LA124_;
				result -= start;
			}
			goto LA121_;
			LA124_: ;
			{
				result = ((NI) -1);
			}
			LA121_: ;
		}
		goto LA72_;
		LA74_: ;
		{
			result = ((NI) -1);
		}
		LA72_: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 6):
	{
		{
			NI32 a_3;
			if (!!(((NU8)(s->data[start]) == (NU8)(0)))) goto LA131_;
			a_3 = (NI32)0;
			result = start;
			{
				if (!((NU32)(((NI) (((NU8)(s->data[result]))))) <= (NU32)(((NI) 127)))) goto LA135_;
				a_3 = ((NI32) (((NU8)(s->data[result]))));
				result += ((NI) 1);
			}
			goto LA133_;
			LA135_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 5))) == ((NI) 6))) goto LA138_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 2)))) goto LA142_;
					a_3 = ((NI32) ((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 31))))) << (NU32)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63)))))));
					result += ((NI) 2);
				}
				goto LA140_;
				LA142_: ;
				{
					a_3 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA140_: ;
			}
			goto LA133_;
			LA138_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 4))) == ((NI) 14))) goto LA146_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 3)))) goto LA150_;
					a_3 = ((NI32) ((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 15))))) << (NU32)(((NI) 12))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63)))))));
					result += ((NI) 3);
				}
				goto LA148_;
				LA150_: ;
				{
					a_3 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA148_: ;
			}
			goto LA133_;
			LA146_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 3))) == ((NI) 30))) goto LA154_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 4)))) goto LA158_;
					a_3 = ((NI32) ((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 7))))) << (NU32)(((NI) 18))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63)))))));
					result += ((NI) 4);
				}
				goto LA156_;
				LA158_: ;
				{
					a_3 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA156_: ;
			}
			goto LA133_;
			LA154_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 2))) == ((NI) 62))) goto LA162_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 5)))) goto LA166_;
					a_3 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 3))))) << (NU32)(((NI) 24))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 4))])))) & ((NI) 63)))))));
					result += ((NI) 5);
				}
				goto LA164_;
				LA166_: ;
				{
					a_3 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA164_: ;
			}
			goto LA133_;
			LA162_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 1))) == ((NI) 126))) goto LA170_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 6)))) goto LA174_;
					a_3 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 1))))) << (NU32)(((NI) 30))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 24)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 4))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 5))])))) & ((NI) 63)))))));
					result += ((NI) 6);
				}
				goto LA172_;
				LA174_: ;
				{
					a_3 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA172_: ;
			}
			goto LA133_;
			LA170_: ;
			{
				a_3 = ((NI32) (((NU8)(s->data[result]))));
				result += ((NI) 1);
			}
			LA133_: ;
			{
				NIM_BOOL T180_;
				T180_ = (NIM_BOOL)0;
				T180_ = nucisUpper(a_3);
				if (!T180_) goto LA181_;
				result -= start;
			}
			goto LA178_;
			LA181_: ;
			{
				result = ((NI) -1);
			}
			LA178_: ;
		}
		goto LA129_;
		LA131_: ;
		{
			result = ((NI) -1);
		}
		LA129_: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 7):
	{
		{
			NI32 a_4;
			if (!!(((NU8)(s->data[start]) == (NU8)(0)))) goto LA188_;
			a_4 = (NI32)0;
			result = start;
			{
				if (!((NU32)(((NI) (((NU8)(s->data[result]))))) <= (NU32)(((NI) 127)))) goto LA192_;
				a_4 = ((NI32) (((NU8)(s->data[result]))));
				result += ((NI) 1);
			}
			goto LA190_;
			LA192_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 5))) == ((NI) 6))) goto LA195_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 2)))) goto LA199_;
					a_4 = ((NI32) ((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 31))))) << (NU32)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63)))))));
					result += ((NI) 2);
				}
				goto LA197_;
				LA199_: ;
				{
					a_4 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA197_: ;
			}
			goto LA190_;
			LA195_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 4))) == ((NI) 14))) goto LA203_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 3)))) goto LA207_;
					a_4 = ((NI32) ((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 15))))) << (NU32)(((NI) 12))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63)))))));
					result += ((NI) 3);
				}
				goto LA205_;
				LA207_: ;
				{
					a_4 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA205_: ;
			}
			goto LA190_;
			LA203_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 3))) == ((NI) 30))) goto LA211_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 4)))) goto LA215_;
					a_4 = ((NI32) ((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 7))))) << (NU32)(((NI) 18))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63)))))));
					result += ((NI) 4);
				}
				goto LA213_;
				LA215_: ;
				{
					a_4 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA213_: ;
			}
			goto LA190_;
			LA211_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 2))) == ((NI) 62))) goto LA219_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 5)))) goto LA223_;
					a_4 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 3))))) << (NU32)(((NI) 24))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 4))])))) & ((NI) 63)))))));
					result += ((NI) 5);
				}
				goto LA221_;
				LA223_: ;
				{
					a_4 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA221_: ;
			}
			goto LA190_;
			LA219_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 1))) == ((NI) 126))) goto LA227_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 6)))) goto LA231_;
					a_4 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 1))))) << (NU32)(((NI) 30))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 24)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 4))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 5))])))) & ((NI) 63)))))));
					result += ((NI) 6);
				}
				goto LA229_;
				LA231_: ;
				{
					a_4 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA229_: ;
			}
			goto LA190_;
			LA227_: ;
			{
				a_4 = ((NI32) (((NU8)(s->data[result]))));
				result += ((NI) 1);
			}
			LA190_: ;
			{
				NIM_BOOL T237_;
				T237_ = (NIM_BOOL)0;
				T237_ = nucisTitle(a_4);
				if (!T237_) goto LA238_;
				result -= start;
			}
			goto LA235_;
			LA238_: ;
			{
				result = ((NI) -1);
			}
			LA235_: ;
		}
		goto LA186_;
		LA188_: ;
		{
			result = ((NI) -1);
		}
		LA186_: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 8):
	{
		{
			NI32 a_5;
			if (!!(((NU8)(s->data[start]) == (NU8)(0)))) goto LA245_;
			a_5 = (NI32)0;
			result = start;
			{
				if (!((NU32)(((NI) (((NU8)(s->data[result]))))) <= (NU32)(((NI) 127)))) goto LA249_;
				a_5 = ((NI32) (((NU8)(s->data[result]))));
				result += ((NI) 1);
			}
			goto LA247_;
			LA249_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 5))) == ((NI) 6))) goto LA252_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 2)))) goto LA256_;
					a_5 = ((NI32) ((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 31))))) << (NU32)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63)))))));
					result += ((NI) 2);
				}
				goto LA254_;
				LA256_: ;
				{
					a_5 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA254_: ;
			}
			goto LA247_;
			LA252_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 4))) == ((NI) 14))) goto LA260_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 3)))) goto LA264_;
					a_5 = ((NI32) ((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 15))))) << (NU32)(((NI) 12))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63)))))));
					result += ((NI) 3);
				}
				goto LA262_;
				LA264_: ;
				{
					a_5 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA262_: ;
			}
			goto LA247_;
			LA260_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 3))) == ((NI) 30))) goto LA268_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 4)))) goto LA272_;
					a_5 = ((NI32) ((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 7))))) << (NU32)(((NI) 18))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63)))))));
					result += ((NI) 4);
				}
				goto LA270_;
				LA272_: ;
				{
					a_5 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA270_: ;
			}
			goto LA247_;
			LA268_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 2))) == ((NI) 62))) goto LA276_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 5)))) goto LA280_;
					a_5 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 3))))) << (NU32)(((NI) 24))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 4))])))) & ((NI) 63)))))));
					result += ((NI) 5);
				}
				goto LA278_;
				LA280_: ;
				{
					a_5 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA278_: ;
			}
			goto LA247_;
			LA276_: ;
			{
				if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 1))) == ((NI) 126))) goto LA284_;
				{
					if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 6)))) goto LA288_;
					a_5 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 1))))) << (NU32)(((NI) 30))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 24)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 4))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 5))])))) & ((NI) 63)))))));
					result += ((NI) 6);
				}
				goto LA286_;
				LA288_: ;
				{
					a_5 = ((NI32) 65533);
					result += ((NI) 1);
				}
				LA286_: ;
			}
			goto LA247_;
			LA284_: ;
			{
				a_5 = ((NI32) (((NU8)(s->data[result]))));
				result += ((NI) 1);
			}
			LA247_: ;
			{
				NIM_BOOL T294_;
				T294_ = (NIM_BOOL)0;
				T294_ = nucisWhiteSpace(a_5);
				if (!T294_) goto LA295_;
				result -= start;
			}
			goto LA292_;
			LA295_: ;
			{
				result = ((NI) -1);
			}
			LA292_: ;
		}
		goto LA243_;
		LA245_: ;
		{
			result = ((NI) -1);
		}
		LA243_: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 20):
	{
		result = (NI)((s ? s->Sup.len : 0) - start);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 3):
	{
		{
			if (!((NU8)(s->data[start]) == (NU8)(10))) goto LA303_;
			result = ((NI) 1);
		}
		goto LA301_;
		LA303_: ;
		{
			if (!((NU8)(s->data[start]) == (NU8)(13))) goto LA306_;
			{
				if (!((NU8)(s->data[(NI)(start + ((NI) 1))]) == (NU8)(10))) goto LA310_;
				result = ((NI) 2);
			}
			goto LA308_;
			LA310_: ;
			{
				result = ((NI) 1);
			}
			LA308_: ;
		}
		goto LA301_;
		LA306_: ;
		{
			result = ((NI) -1);
		}
		LA301_: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 9):
	{
		result = (p.kindU.term ? p.kindU.term->Sup.len : 0);
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)(result - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA317;
					i = res;
					{
						if (!!(((NU8)(p.kindU.term->data[i]) == (NU8)(s->data[(NI)(start + i)])))) goto LA320_;
						result = ((NI) -1);
						goto LA315;
					}
					LA320_: ;
					res += ((NI) 1);
				} LA317: ;
			}
		} LA315: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 10):
	{
		NI i_2;
		NI32 a_6;
		NI32 b;
		i_2 = ((NI) 0);
		a_6 = (NI32)0;
		b = (NI32)0;
		result = start;
		{
			while (1) {
				if (!(i_2 < (p.kindU.term ? p.kindU.term->Sup.len : 0))) goto LA324;
				{
					if (!((NU32)(((NI) (((NU8)(p.kindU.term->data[i_2]))))) <= (NU32)(((NI) 127)))) goto LA327_;
					a_6 = ((NI32) (((NU8)(p.kindU.term->data[i_2]))));
					i_2 += ((NI) 1);
				}
				goto LA325_;
				LA327_: ;
				{
					if (!((NI)((NU32)(((NI) (((NU8)(p.kindU.term->data[i_2]))))) >> (NU32)(((NI) 5))) == ((NI) 6))) goto LA330_;
					{
						if (!(i_2 <= (NI)((p.kindU.term ? p.kindU.term->Sup.len : 0) - ((NI) 2)))) goto LA334_;
						a_6 = ((NI32) ((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[i_2])))) & ((NI) 31))))) << (NU32)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_2 + ((NI) 1))])))) & ((NI) 63)))))));
						i_2 += ((NI) 2);
					}
					goto LA332_;
					LA334_: ;
					{
						a_6 = ((NI32) 65533);
						i_2 += ((NI) 1);
					}
					LA332_: ;
				}
				goto LA325_;
				LA330_: ;
				{
					if (!((NI)((NU32)(((NI) (((NU8)(p.kindU.term->data[i_2]))))) >> (NU32)(((NI) 4))) == ((NI) 14))) goto LA338_;
					{
						if (!(i_2 <= (NI)((p.kindU.term ? p.kindU.term->Sup.len : 0) - ((NI) 3)))) goto LA342_;
						a_6 = ((NI32) ((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[i_2])))) & ((NI) 15))))) << (NU32)(((NI) 12))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_2 + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_2 + ((NI) 2))])))) & ((NI) 63)))))));
						i_2 += ((NI) 3);
					}
					goto LA340_;
					LA342_: ;
					{
						a_6 = ((NI32) 65533);
						i_2 += ((NI) 1);
					}
					LA340_: ;
				}
				goto LA325_;
				LA338_: ;
				{
					if (!((NI)((NU32)(((NI) (((NU8)(p.kindU.term->data[i_2]))))) >> (NU32)(((NI) 3))) == ((NI) 30))) goto LA346_;
					{
						if (!(i_2 <= (NI)((p.kindU.term ? p.kindU.term->Sup.len : 0) - ((NI) 4)))) goto LA350_;
						a_6 = ((NI32) ((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[i_2])))) & ((NI) 7))))) << (NU32)(((NI) 18))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_2 + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_2 + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_2 + ((NI) 3))])))) & ((NI) 63)))))));
						i_2 += ((NI) 4);
					}
					goto LA348_;
					LA350_: ;
					{
						a_6 = ((NI32) 65533);
						i_2 += ((NI) 1);
					}
					LA348_: ;
				}
				goto LA325_;
				LA346_: ;
				{
					if (!((NI)((NU32)(((NI) (((NU8)(p.kindU.term->data[i_2]))))) >> (NU32)(((NI) 2))) == ((NI) 62))) goto LA354_;
					{
						if (!(i_2 <= (NI)((p.kindU.term ? p.kindU.term->Sup.len : 0) - ((NI) 5)))) goto LA358_;
						a_6 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[i_2])))) & ((NI) 3))))) << (NU32)(((NI) 24))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_2 + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_2 + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_2 + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_2 + ((NI) 4))])))) & ((NI) 63)))))));
						i_2 += ((NI) 5);
					}
					goto LA356_;
					LA358_: ;
					{
						a_6 = ((NI32) 65533);
						i_2 += ((NI) 1);
					}
					LA356_: ;
				}
				goto LA325_;
				LA354_: ;
				{
					if (!((NI)((NU32)(((NI) (((NU8)(p.kindU.term->data[i_2]))))) >> (NU32)(((NI) 1))) == ((NI) 126))) goto LA362_;
					{
						if (!(i_2 <= (NI)((p.kindU.term ? p.kindU.term->Sup.len : 0) - ((NI) 6)))) goto LA366_;
						a_6 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[i_2])))) & ((NI) 1))))) << (NU32)(((NI) 30))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_2 + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 24)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_2 + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_2 + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_2 + ((NI) 4))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_2 + ((NI) 5))])))) & ((NI) 63)))))));
						i_2 += ((NI) 6);
					}
					goto LA364_;
					LA366_: ;
					{
						a_6 = ((NI32) 65533);
						i_2 += ((NI) 1);
					}
					LA364_: ;
				}
				goto LA325_;
				LA362_: ;
				{
					a_6 = ((NI32) (((NU8)(p.kindU.term->data[i_2]))));
					i_2 += ((NI) 1);
				}
				LA325_: ;
				{
					if (!((NU32)(((NI) (((NU8)(s->data[result]))))) <= (NU32)(((NI) 127)))) goto LA372_;
					b = ((NI32) (((NU8)(s->data[result]))));
					result += ((NI) 1);
				}
				goto LA370_;
				LA372_: ;
				{
					if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 5))) == ((NI) 6))) goto LA375_;
					{
						if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 2)))) goto LA379_;
						b = ((NI32) ((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 31))))) << (NU32)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63)))))));
						result += ((NI) 2);
					}
					goto LA377_;
					LA379_: ;
					{
						b = ((NI32) 65533);
						result += ((NI) 1);
					}
					LA377_: ;
				}
				goto LA370_;
				LA375_: ;
				{
					if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 4))) == ((NI) 14))) goto LA383_;
					{
						if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 3)))) goto LA387_;
						b = ((NI32) ((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 15))))) << (NU32)(((NI) 12))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63)))))));
						result += ((NI) 3);
					}
					goto LA385_;
					LA387_: ;
					{
						b = ((NI32) 65533);
						result += ((NI) 1);
					}
					LA385_: ;
				}
				goto LA370_;
				LA383_: ;
				{
					if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 3))) == ((NI) 30))) goto LA391_;
					{
						if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 4)))) goto LA395_;
						b = ((NI32) ((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 7))))) << (NU32)(((NI) 18))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63)))))));
						result += ((NI) 4);
					}
					goto LA393_;
					LA395_: ;
					{
						b = ((NI32) 65533);
						result += ((NI) 1);
					}
					LA393_: ;
				}
				goto LA370_;
				LA391_: ;
				{
					if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 2))) == ((NI) 62))) goto LA399_;
					{
						if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 5)))) goto LA403_;
						b = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 3))))) << (NU32)(((NI) 24))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 4))])))) & ((NI) 63)))))));
						result += ((NI) 5);
					}
					goto LA401_;
					LA403_: ;
					{
						b = ((NI32) 65533);
						result += ((NI) 1);
					}
					LA401_: ;
				}
				goto LA370_;
				LA399_: ;
				{
					if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 1))) == ((NI) 126))) goto LA407_;
					{
						if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 6)))) goto LA411_;
						b = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 1))))) << (NU32)(((NI) 30))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 24)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 4))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 5))])))) & ((NI) 63)))))));
						result += ((NI) 6);
					}
					goto LA409_;
					LA411_: ;
					{
						b = ((NI32) 65533);
						result += ((NI) 1);
					}
					LA409_: ;
				}
				goto LA370_;
				LA407_: ;
				{
					b = ((NI32) (((NU8)(s->data[result]))));
					result += ((NI) 1);
				}
				LA370_: ;
				{
					NI32 T417_;
					NI32 T418_;
					NIM_BOOL T419_;
					T417_ = (NI32)0;
					T417_ = nuctoLower(a_6);
					T418_ = (NI32)0;
					T418_ = nuctoLower(b);
					T419_ = (NIM_BOOL)0;
					T419_ = eqeq__XBungsmTumAhS9ay9aY1EmQQ(T417_, T418_);
					if (!!(T419_)) goto LA420_;
					result = ((NI) -1);
					goto LA323;
				}
				LA420_: ;
			} LA324: ;
		} LA323: ;
		result -= start;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 11):
	{
		NI i_3;
		NI32 a_7;
		NI32 b_2;
		i_3 = ((NI) 0);
		a_7 = (NI32)0;
		b_2 = (NI32)0;
		result = start;
		{
			while (1) {
				if (!(i_3 < (p.kindU.term ? p.kindU.term->Sup.len : 0))) goto LA424;
				{
					while (1) {
						{
							if (!((NU32)(((NI) (((NU8)(p.kindU.term->data[i_3]))))) <= (NU32)(((NI) 127)))) goto LA429_;
							a_7 = ((NI32) (((NU8)(p.kindU.term->data[i_3]))));
							i_3 += ((NI) 1);
						}
						goto LA427_;
						LA429_: ;
						{
							if (!((NI)((NU32)(((NI) (((NU8)(p.kindU.term->data[i_3]))))) >> (NU32)(((NI) 5))) == ((NI) 6))) goto LA432_;
							{
								if (!(i_3 <= (NI)((p.kindU.term ? p.kindU.term->Sup.len : 0) - ((NI) 2)))) goto LA436_;
								a_7 = ((NI32) ((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[i_3])))) & ((NI) 31))))) << (NU32)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_3 + ((NI) 1))])))) & ((NI) 63)))))));
								i_3 += ((NI) 2);
							}
							goto LA434_;
							LA436_: ;
							{
								a_7 = ((NI32) 65533);
								i_3 += ((NI) 1);
							}
							LA434_: ;
						}
						goto LA427_;
						LA432_: ;
						{
							if (!((NI)((NU32)(((NI) (((NU8)(p.kindU.term->data[i_3]))))) >> (NU32)(((NI) 4))) == ((NI) 14))) goto LA440_;
							{
								if (!(i_3 <= (NI)((p.kindU.term ? p.kindU.term->Sup.len : 0) - ((NI) 3)))) goto LA444_;
								a_7 = ((NI32) ((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[i_3])))) & ((NI) 15))))) << (NU32)(((NI) 12))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_3 + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_3 + ((NI) 2))])))) & ((NI) 63)))))));
								i_3 += ((NI) 3);
							}
							goto LA442_;
							LA444_: ;
							{
								a_7 = ((NI32) 65533);
								i_3 += ((NI) 1);
							}
							LA442_: ;
						}
						goto LA427_;
						LA440_: ;
						{
							if (!((NI)((NU32)(((NI) (((NU8)(p.kindU.term->data[i_3]))))) >> (NU32)(((NI) 3))) == ((NI) 30))) goto LA448_;
							{
								if (!(i_3 <= (NI)((p.kindU.term ? p.kindU.term->Sup.len : 0) - ((NI) 4)))) goto LA452_;
								a_7 = ((NI32) ((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[i_3])))) & ((NI) 7))))) << (NU32)(((NI) 18))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_3 + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_3 + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_3 + ((NI) 3))])))) & ((NI) 63)))))));
								i_3 += ((NI) 4);
							}
							goto LA450_;
							LA452_: ;
							{
								a_7 = ((NI32) 65533);
								i_3 += ((NI) 1);
							}
							LA450_: ;
						}
						goto LA427_;
						LA448_: ;
						{
							if (!((NI)((NU32)(((NI) (((NU8)(p.kindU.term->data[i_3]))))) >> (NU32)(((NI) 2))) == ((NI) 62))) goto LA456_;
							{
								if (!(i_3 <= (NI)((p.kindU.term ? p.kindU.term->Sup.len : 0) - ((NI) 5)))) goto LA460_;
								a_7 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[i_3])))) & ((NI) 3))))) << (NU32)(((NI) 24))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_3 + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_3 + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_3 + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_3 + ((NI) 4))])))) & ((NI) 63)))))));
								i_3 += ((NI) 5);
							}
							goto LA458_;
							LA460_: ;
							{
								a_7 = ((NI32) 65533);
								i_3 += ((NI) 1);
							}
							LA458_: ;
						}
						goto LA427_;
						LA456_: ;
						{
							if (!((NI)((NU32)(((NI) (((NU8)(p.kindU.term->data[i_3]))))) >> (NU32)(((NI) 1))) == ((NI) 126))) goto LA464_;
							{
								if (!(i_3 <= (NI)((p.kindU.term ? p.kindU.term->Sup.len : 0) - ((NI) 6)))) goto LA468_;
								a_7 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[i_3])))) & ((NI) 1))))) << (NU32)(((NI) 30))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_3 + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 24)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_3 + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_3 + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_3 + ((NI) 4))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(p.kindU.term->data[(NI)(i_3 + ((NI) 5))])))) & ((NI) 63)))))));
								i_3 += ((NI) 6);
							}
							goto LA466_;
							LA468_: ;
							{
								a_7 = ((NI32) 65533);
								i_3 += ((NI) 1);
							}
							LA466_: ;
						}
						goto LA427_;
						LA464_: ;
						{
							a_7 = ((NI32) (((NU8)(p.kindU.term->data[i_3]))));
							i_3 += ((NI) 1);
						}
						LA427_: ;
						{
							NIM_BOOL T474_;
							T474_ = (NIM_BOOL)0;
							T474_ = eqeq__XBungsmTumAhS9ay9aY1EmQQ(a_7, ((NI32) 95));
							if (!!(T474_)) goto LA475_;
							goto LA425;
						}
						LA475_: ;
					}
				} LA425: ;
				{
					while (1) {
						{
							if (!((NU32)(((NI) (((NU8)(s->data[result]))))) <= (NU32)(((NI) 127)))) goto LA481_;
							b_2 = ((NI32) (((NU8)(s->data[result]))));
							result += ((NI) 1);
						}
						goto LA479_;
						LA481_: ;
						{
							if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 5))) == ((NI) 6))) goto LA484_;
							{
								if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 2)))) goto LA488_;
								b_2 = ((NI32) ((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 31))))) << (NU32)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63)))))));
								result += ((NI) 2);
							}
							goto LA486_;
							LA488_: ;
							{
								b_2 = ((NI32) 65533);
								result += ((NI) 1);
							}
							LA486_: ;
						}
						goto LA479_;
						LA484_: ;
						{
							if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 4))) == ((NI) 14))) goto LA492_;
							{
								if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 3)))) goto LA496_;
								b_2 = ((NI32) ((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 15))))) << (NU32)(((NI) 12))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63)))))));
								result += ((NI) 3);
							}
							goto LA494_;
							LA496_: ;
							{
								b_2 = ((NI32) 65533);
								result += ((NI) 1);
							}
							LA494_: ;
						}
						goto LA479_;
						LA492_: ;
						{
							if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 3))) == ((NI) 30))) goto LA500_;
							{
								if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 4)))) goto LA504_;
								b_2 = ((NI32) ((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 7))))) << (NU32)(((NI) 18))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63)))))));
								result += ((NI) 4);
							}
							goto LA502_;
							LA504_: ;
							{
								b_2 = ((NI32) 65533);
								result += ((NI) 1);
							}
							LA502_: ;
						}
						goto LA479_;
						LA500_: ;
						{
							if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 2))) == ((NI) 62))) goto LA508_;
							{
								if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 5)))) goto LA512_;
								b_2 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 3))))) << (NU32)(((NI) 24))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 4))])))) & ((NI) 63)))))));
								result += ((NI) 5);
							}
							goto LA510_;
							LA512_: ;
							{
								b_2 = ((NI32) 65533);
								result += ((NI) 1);
							}
							LA510_: ;
						}
						goto LA479_;
						LA508_: ;
						{
							if (!((NI)((NU32)(((NI) (((NU8)(s->data[result]))))) >> (NU32)(((NI) 1))) == ((NI) 126))) goto LA516_;
							{
								if (!(result <= (NI)((s ? s->Sup.len : 0) - ((NI) 6)))) goto LA520_;
								b_2 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[result])))) & ((NI) 1))))) << (NU32)(((NI) 30))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 1))])))) & ((NI) 63))))) << (NU32)(((NI) 24)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 2))])))) & ((NI) 63))))) << (NU32)(((NI) 18)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 3))])))) & ((NI) 63))))) << (NU32)(((NI) 12)))) | (NI)((NU32)(((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 4))])))) & ((NI) 63))))) << (NU32)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s->data[(NI)(result + ((NI) 5))])))) & ((NI) 63)))))));
								result += ((NI) 6);
							}
							goto LA518_;
							LA520_: ;
							{
								b_2 = ((NI32) 65533);
								result += ((NI) 1);
							}
							LA518_: ;
						}
						goto LA479_;
						LA516_: ;
						{
							b_2 = ((NI32) (((NU8)(s->data[result]))));
							result += ((NI) 1);
						}
						LA479_: ;
						{
							NIM_BOOL T526_;
							T526_ = (NIM_BOOL)0;
							T526_ = eqeq__XBungsmTumAhS9ay9aY1EmQQ(b_2, ((NI32) 95));
							if (!!(T526_)) goto LA527_;
							goto LA477;
						}
						LA527_: ;
					}
				} LA477: ;
				{
					NI32 T531_;
					NI32 T532_;
					NIM_BOOL T533_;
					T531_ = (NI32)0;
					T531_ = nuctoLower(a_7);
					T532_ = (NI32)0;
					T532_ = nuctoLower(b_2);
					T533_ = (NIM_BOOL)0;
					T533_ = eqeq__XBungsmTumAhS9ay9aY1EmQQ(T531_, T532_);
					if (!!(T533_)) goto LA534_;
					result = ((NI) -1);
					goto LA423;
				}
				LA534_: ;
			} LA424: ;
		} LA423: ;
		result -= start;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 12):
	{
		{
			if (!((NU8)(p.kindU.ch) == (NU8)(s->data[start]))) goto LA539_;
			result = ((NI) 1);
		}
		goto LA537_;
		LA539_: ;
		{
			result = ((NI) -1);
		}
		LA537_: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 13):
	{
		{
			if (!(((*p.kindU.charChoice)[(NU)(((NU8)(s->data[start])))>>3] &(1U<<((NU)(((NU8)(s->data[start])))&7U)))!=0)) goto LA545_;
			result = ((NI) 1);
		}
		goto LA543_;
		LA545_: ;
		{
			result = ((NI) -1);
		}
		LA543_: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 14):
	{
		NI oldMl;
		oldMl = (*c).ml;
		result = npegsrawMatch(s, (*p.kindU.nt).rule, start, c);
		{
			if (!(result < ((NI) 0))) goto LA551_;
			(*c).ml = oldMl;
		}
		LA551_: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 15):
	{
		NI oldMl_2;
		oldMl_2 = (*c).ml;
		result = ((NI) 0);
		{
			NI i_4;
			NI colontmp__2;
			NI res_2;
			i_4 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = (p.kindU.sons ? (p.kindU.sons->Sup.len-1) : -1);
			res_2 = ((NI) 0);
			{
				while (1) {
					NI x;
					if (!(res_2 <= colontmp__2)) goto LA556;
					i_4 = res_2;
					x = npegsrawMatch(s, p.kindU.sons->data[i_4], (NI)(start + result), c);
					{
						if (!(x < ((NI) 0))) goto LA559_;
						(*c).ml = oldMl_2;
						result = ((NI) -1);
						goto LA554;
					}
					goto LA557_;
					LA559_: ;
					{
						result += x;
					}
					LA557_: ;
					res_2 += ((NI) 1);
				} LA556: ;
			}
		} LA554: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 16):
	{
		NI oldMl_3;
		oldMl_3 = (*c).ml;
		{
			NI i_5;
			NI colontmp__3;
			NI res_3;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = (p.kindU.sons ? (p.kindU.sons->Sup.len-1) : -1);
			res_3 = ((NI) 0);
			{
				while (1) {
					if (!(res_3 <= colontmp__3)) goto LA565;
					i_5 = res_3;
					result = npegsrawMatch(s, p.kindU.sons->data[i_5], start, c);
					{
						if (!(((NI) 0) <= result)) goto LA568_;
						goto LA563;
					}
					LA568_: ;
					(*c).ml = oldMl_3;
					res_3 += ((NI) 1);
				} LA565: ;
			}
		} LA563: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 28):
	{
		NI oldMl_4;
		oldMl_4 = (*c).ml;
		result = ((NI) 0);
		{
			while (1) {
				NI x_2;
				if (!((NI)(start + result) <= (s ? s->Sup.len : 0))) goto LA572;
				x_2 = npegsrawMatch(s, p.kindU.sons->data[((NI) 0)], (NI)(start + result), c);
				{
					if (!(((NI) 0) <= x_2)) goto LA575_;
					result += x_2;
					goto BeforeRet_;
				}
				LA575_: ;
				result += ((NI) 1);
			} LA572: ;
		}
		result = ((NI) -1);
		(*c).ml = oldMl_4;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 29):
	{
		NI idx;
		idx = (*c).ml;
		(*c).ml += ((NI) 1);
		result = ((NI) 0);
		{
			while (1) {
				NI x_3;
				if (!((NI)(start + result) <= (s ? s->Sup.len : 0))) goto LA579;
				x_3 = npegsrawMatch(s, p.kindU.sons->data[((NI) 0)], (NI)(start + result), c);
				{
					if (!(((NI) 0) <= x_3)) goto LA582_;
					{
						if (!(idx < ((NI) 20))) goto LA586_;
						(*c).matches[(idx)- 0].Field0 = start;
						(*c).matches[(idx)- 0].Field1 = (NI)((NI)(start + result) - ((NI) 1));
					}
					LA586_: ;
					result += x_3;
					goto BeforeRet_;
				}
				LA582_: ;
				result += ((NI) 1);
			} LA579: ;
		}
		result = ((NI) -1);
		(*c).ml = idx;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 17):
	{
		result = ((NI) 0);
		{
			while (1) {
				NI x_4;
				x_4 = npegsrawMatch(s, p.kindU.sons->data[((NI) 0)], (NI)(start + result), c);
				{
					if (!(x_4 <= ((NI) 0))) goto LA593_;
					goto LA589;
				}
				LA593_: ;
				result += x_4;
			}
		} LA589: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 18):
	{
		NIM_CHAR ch;
		result = ((NI) 0);
		ch = p.kindU.ch;
		{
			while (1) {
				if (!((NU8)(ch) == (NU8)(s->data[(NI)(start + result)]))) goto LA597;
				result += ((NI) 1);
			} LA597: ;
		}
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 19):
	{
		result = ((NI) 0);
		{
			while (1) {
				if (!(((*p.kindU.charChoice)[(NU)(((NU8)(s->data[(NI)(start + result)])))>>3] &(1U<<((NU)(((NU8)(s->data[(NI)(start + result)])))&7U)))!=0)) goto LA600;
				result += ((NI) 1);
			} LA600: ;
		}
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 21):
	{
		NI T602_;
		T602_ = (NI)0;
		T602_ = npegsrawMatch(s, p.kindU.sons->data[((NI) 0)], start, c);
		result = ((((NI) 0) >= T602_) ? ((NI) 0) : T602_);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 22):
	{
		NI oldMl_5;
		oldMl_5 = (*c).ml;
		result = npegsrawMatch(s, p.kindU.sons->data[((NI) 0)], start, c);
		{
			if (!(((NI) 0) <= result)) goto LA606_;
			result = ((NI) 0);
		}
		goto LA604_;
		LA606_: ;
		{
			(*c).ml = oldMl_5;
		}
		LA604_: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 23):
	{
		NI oldMl_6;
		oldMl_6 = (*c).ml;
		result = npegsrawMatch(s, p.kindU.sons->data[((NI) 0)], start, c);
		{
			if (!(result < ((NI) 0))) goto LA612_;
			result = ((NI) 0);
		}
		goto LA610_;
		LA612_: ;
		{
			(*c).ml = oldMl_6;
			result = ((NI) -1);
		}
		LA610_: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 24):
	{
		NI idx_2;
		idx_2 = (*c).ml;
		(*c).ml += ((NI) 1);
		result = npegsrawMatch(s, p.kindU.sons->data[((NI) 0)], start, c);
		{
			if (!(((NI) 0) <= result)) goto LA618_;
			{
				if (!(idx_2 < ((NI) 20))) goto LA622_;
				(*c).matches[(idx_2)- 0].Field0 = start;
				(*c).matches[(idx_2)- 0].Field1 = (NI)((NI)(start + result) - ((NI) 1));
			}
			LA622_: ;
		}
		goto LA616_;
		LA618_: ;
		{
			(*c).ml = idx_2;
		}
		LA616_: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 25) ... ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 27):
	{
		NI a_8;
		NI b_3;
		Node_0qztr5Keivtxacz23lA4IA n;
		{
			if (!((*c).ml <= ((NI) (p.kindU.index)))) goto LA628_;
			result = ((NI) -1);
			goto BeforeRet_;
		}
		LA628_: ;
		a_8 = (*c).matches[(p.kindU.index)- 0].Field0;
		b_3 = (*c).matches[(p.kindU.index)- 0].Field1;
		memset((void*)(&n), 0, sizeof(n));
		n.kind = (PegKind_r9a6rAhGclsLWkBysfmtr6Q)(((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 9) + ((NI) ((NI)(((NI) (p.kind)) - ((NI) 25)))));
		n.kindU.term = copyStrLast(s, a_8, b_3);
		result = npegsrawMatch(s, n, start, c);
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 32):
	{
		{
			if (!((*c).origStart == start)) goto LA633_;
			result = ((NI) 0);
		}
		goto LA631_;
		LA633_: ;
		{
			result = ((NI) -1);
		}
		LA631_: ;
	}
	break;
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 30):
	case ((PegKind_r9a6rAhGclsLWkBysfmtr6Q) 31):
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_EXPORT N_CDECL(NI, npegsmatchLenCapture)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NimStringDesc** matches, NI matchesLen_0, NI start) {
	NI result;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c;
	result = (NI)0;
	memset((void*)(&c), 0, sizeof(c));
	c.origStart = start;
	result = npegsrawMatch(s, pattern, start, (&c));
	{
		if (!(((NI) 0) <= result)) goto LA3_;
		{
			NI k;
			NI colontmp_;
			NI res;
			k = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)(c.ml - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					NI startIdx;
					NI endIdx;
					if (!(res <= colontmp_)) goto LA7;
					k = res;
					startIdx = c.matches[(k)- 0].Field0;
					endIdx = c.matches[(k)- 0].Field1;
					{
						if (!!((startIdx == ((NI) -1)))) goto LA10_;
						unsureAsgnRef((void**) (&matches[k]), copyStrLast(s, startIdx, endIdx));
					}
					goto LA8_;
					LA10_: ;
					{
						unsureAsgnRef((void**) (&matches[k]), nimrtl_copyString(NIM_NIL));
					}
					LA8_: ;
					res += ((NI) 1);
				} LA7: ;
			}
		}
	}
	LA3_: ;
	return result;
}

N_LIB_EXPORT N_CDECL(NI, npegsmatchLen)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NI start) {
	NI result;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c;
	result = (NI)0;
	memset((void*)(&c), 0, sizeof(c));
	c.origStart = start;
	result = npegsrawMatch(s, pattern, start, (&c));
	return result;
}

N_LIB_EXPORT N_CDECL(NIM_BOOL, npegsmatchCapture)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NimStringDesc** matches, NI matchesLen_0, NI start) {
	NIM_BOOL result;
	NI T1_;
	result = (NIM_BOOL)0;
	T1_ = (NI)0;
	T1_ = npegsmatchLenCapture(s, pattern, matches, matchesLen_0, start);
	result = !((T1_ == ((NI) -1)));
	return result;
}

N_LIB_EXPORT N_CDECL(NIM_BOOL, npegsmatch)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NI start) {
	NIM_BOOL result;
	NI T1_;
	result = (NIM_BOOL)0;
	T1_ = (NI)0;
	T1_ = npegsmatchLen(s, pattern, start);
	result = !((T1_ == ((NI) -1)));
	return result;
}

N_LIB_EXPORT N_CDECL(NI, npegsfindCapture)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NimStringDesc** matches, NI matchesLen_0, NI start) {
	NI result;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c;
{	result = (NI)0;
	memset((void*)(&c), 0, sizeof(c));
	c.origStart = start;
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)((s ? s->Sup.len : 0) - ((NI) 1));
		res = start;
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				c.ml = ((NI) 0);
				{
					NI T6_;
					T6_ = (NI)0;
					T6_ = npegsrawMatch(s, pattern, i, (&c));
					if (!(((NI) 0) <= T6_)) goto LA7_;
					{
						NI k;
						NI colontmp__2;
						NI res_2;
						k = (NI)0;
						colontmp__2 = (NI)0;
						colontmp__2 = (NI)(c.ml - ((NI) 1));
						res_2 = ((NI) 0);
						{
							while (1) {
								NI startIdx;
								NI endIdx;
								if (!(res_2 <= colontmp__2)) goto LA11;
								k = res_2;
								startIdx = c.matches[(k)- 0].Field0;
								endIdx = c.matches[(k)- 0].Field1;
								{
									if (!!((startIdx == ((NI) -1)))) goto LA14_;
									unsureAsgnRef((void**) (&matches[k]), copyStrLast(s, startIdx, endIdx));
								}
								goto LA12_;
								LA14_: ;
								{
									unsureAsgnRef((void**) (&matches[k]), nimrtl_copyString(NIM_NIL));
								}
								LA12_: ;
								res_2 += ((NI) 1);
							} LA11: ;
						}
					}
					result = i;
					goto BeforeRet_;
				}
				LA7_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	result = ((NI) -1);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_EXPORT N_CDECL(TY_1v9bKyksXWMsm0vNwmZ4EuQ, npegsfindBoundsCapture)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NimStringDesc** matches, NI matchesLen_0, NI start) {
	TY_1v9bKyksXWMsm0vNwmZ4EuQ result;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c;
{	memset((void*)(&result), 0, sizeof(result));
	memset((void*)(&c), 0, sizeof(c));
	c.origStart = start;
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)((s ? s->Sup.len : 0) - ((NI) 1));
		res = start;
		{
			while (1) {
				NI L;
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				c.ml = ((NI) 0);
				L = npegsrawMatch(s, pattern, i, (&c));
				{
					if (!(((NI) 0) <= L)) goto LA6_;
					{
						NI k;
						NI colontmp__2;
						NI res_2;
						k = (NI)0;
						colontmp__2 = (NI)0;
						colontmp__2 = (NI)(c.ml - ((NI) 1));
						res_2 = ((NI) 0);
						{
							while (1) {
								NI startIdx;
								NI endIdx;
								if (!(res_2 <= colontmp__2)) goto LA10;
								k = res_2;
								startIdx = c.matches[(k)- 0].Field0;
								endIdx = c.matches[(k)- 0].Field1;
								{
									if (!!((startIdx == ((NI) -1)))) goto LA13_;
									unsureAsgnRef((void**) (&matches[k]), copyStrLast(s, startIdx, endIdx));
								}
								goto LA11_;
								LA13_: ;
								{
									unsureAsgnRef((void**) (&matches[k]), nimrtl_copyString(NIM_NIL));
								}
								LA11_: ;
								res_2 += ((NI) 1);
							} LA10: ;
						}
					}
					result.Field0 = i;
					result.Field1 = (NI)((NI)(i + L) - ((NI) 1));
					goto BeforeRet_;
				}
				LA6_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	result = TM_YGOrctedenU9ao6jM7xmy6g_38;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_EXPORT N_CDECL(NI, npegsfind)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NI start) {
	NI result;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c;
{	result = (NI)0;
	memset((void*)(&c), 0, sizeof(c));
	c.origStart = start;
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)((s ? s->Sup.len : 0) - ((NI) 1));
		res = start;
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				{
					NI T6_;
					T6_ = (NI)0;
					T6_ = npegsrawMatch(s, pattern, i, (&c));
					if (!(((NI) 0) <= T6_)) goto LA7_;
					result = i;
					goto BeforeRet_;
				}
				LA7_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	result = ((NI) -1);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_EXPORT N_CDECL(TY_sM4lkSb7zS6F7OVMvW9cffQ*, npegsfindAll)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NI start) {
	TY_sM4lkSb7zS6F7OVMvW9cffQ* result;
	result = (TY_sM4lkSb7zS6F7OVMvW9cffQ*)0;
	result = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) nimrtl_newSeq((&NTI_sM4lkSb7zS6F7OVMvW9cffQ_), 0);
	{
		NimStringDesc* x;
		Captures_tZhlqR24EekS3w5Qr6WNZQ c;
		NI i;
		x = (NimStringDesc*)0;
		memset((void*)(&c), 0, sizeof(c));
		c.origStart = start;
		i = start;
		{
			while (1) {
				NI L;
				if (!(i < (s ? s->Sup.len : 0))) goto LA3;
				c.ml = ((NI) 0);
				L = npegsrawMatch(s, pattern, i, (&c));
				{
					if (!(L < ((NI) 0))) goto LA6_;
					i += ((NI) 1);
				}
				goto LA4_;
				LA6_: ;
				{
					NimStringDesc* T9_;
					x = copyStrLast(s, i, (NI)((NI)(i + L) - ((NI) 1)));
					result = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV2(&(result)->Sup, sizeof(NimStringDesc*));
					T9_ = (NimStringDesc*)0;
					T9_ = result->data[result->Sup.len]; result->data[result->Sup.len] = nimrtl_copyStringRC1(x);
					if (T9_) nimGCunrefNoCycle(T9_);
					++result->Sup.len;
					i += L;
				}
				LA4_: ;
			} LA3: ;
		}
	}
	return result;
}

N_LIB_EXPORT N_CDECL(NIM_BOOL, npegscontains)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NI start) {
	NIM_BOOL result;
	NI T1_;
{	result = (NIM_BOOL)0;
	T1_ = (NI)0;
	T1_ = npegsfind(s, pattern, start);
	result = (((NI) 0) <= T1_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_EXPORT N_CDECL(NIM_BOOL, npegscontainsCapture)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA pattern, NimStringDesc** matches, NI matchesLen_0, NI start) {
	NIM_BOOL result;
	NI T1_;
{	result = (NIM_BOOL)0;
	T1_ = (NI)0;
	T1_ = npegsfindCapture(s, pattern, matches, matchesLen_0, start);
	result = (((NI) 0) <= T1_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_EXPORT N_CDECL(NIM_BOOL, npegsstartsWith)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA prefix, NI start) {
	NIM_BOOL result;
	NI T1_;
	result = (NIM_BOOL)0;
	T1_ = (NI)0;
	T1_ = npegsmatchLen(s, prefix, start);
	result = (((NI) 0) <= T1_);
	return result;
}

N_LIB_EXPORT N_CDECL(NIM_BOOL, npegsendsWith)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA suffix, NI start) {
	NIM_BOOL result;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c;
{	result = (NIM_BOOL)0;
	memset((void*)(&c), 0, sizeof(c));
	c.origStart = start;
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)((s ? s->Sup.len : 0) - ((NI) 1));
		res = start;
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				{
					NI T6_;
					T6_ = (NI)0;
					T6_ = npegsrawMatch(s, suffix, i, (&c));
					if (!(T6_ == (NI)((s ? s->Sup.len : 0) - i))) goto LA7_;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA7_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsreplacef)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA sub, NimStringDesc* by) {
	NimStringDesc* result;
	NI i;
	TY_Qdg3zgcNlmwGTTeVxyC9bbw caps;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c;
	NimStringDesc* T16_;
	result = (NimStringDesc*)0;
	result = nimrtl_copyString(((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_9));
	i = ((NI) 0);
	memset((void*)caps, 0, sizeof(caps));
	memset((void*)(&c), 0, sizeof(c));
	{
		while (1) {
			NI x;
			if (!(i < (s ? s->Sup.len : 0))) goto LA2;
			c.ml = ((NI) 0);
			x = npegsrawMatch(s, sub, i, (&c));
			{
				if (!(x <= ((NI) 0))) goto LA5_;
				result = addChar(result, s->data[i]);
				i += ((NI) 1);
			}
			goto LA3_;
			LA5_: ;
			{
				{
					NI k;
					NI colontmp_;
					NI res;
					k = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = (NI)(c.ml - ((NI) 1));
					res = ((NI) 0);
					{
						while (1) {
							NI startIdx;
							NI endIdx;
							if (!(res <= colontmp_)) goto LA10;
							k = res;
							startIdx = c.matches[(k)- 0].Field0;
							endIdx = c.matches[(k)- 0].Field1;
							{
								if (!!((startIdx == ((NI) -1)))) goto LA13_;
								caps[(k)- 0] = copyStrLast(s, startIdx, endIdx);
							}
							goto LA11_;
							LA13_: ;
							{
								caps[(k)- 0] = nimrtl_copyString(NIM_NIL);
							}
							LA11_: ;
							res += ((NI) 1);
						} LA10: ;
					}
				}
				nsuAddf((&result), by, caps, 20);
				i += x;
			}
			LA3_: ;
		} LA2: ;
	}
	T16_ = (NimStringDesc*)0;
	T16_ = copyStr(s, i);
	result = nimrtl_resizeString(result, T16_->Sup.len + 0);
appendString(result, T16_);
	return result;
}

N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsreplace)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA sub, NimStringDesc* by) {
	NimStringDesc* result;
	NI i;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c;
	NimStringDesc* T8_;
	result = (NimStringDesc*)0;
	result = nimrtl_copyString(((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_9));
	i = ((NI) 0);
	memset((void*)(&c), 0, sizeof(c));
	{
		while (1) {
			NI x;
			if (!(i < (s ? s->Sup.len : 0))) goto LA2;
			x = npegsrawMatch(s, sub, i, (&c));
			{
				if (!(x <= ((NI) 0))) goto LA5_;
				result = addChar(result, s->data[i]);
				i += ((NI) 1);
			}
			goto LA3_;
			LA5_: ;
			{
				result = nimrtl_resizeString(result, by->Sup.len + 0);
appendString(result, by);
				i += x;
			}
			LA3_: ;
		} LA2: ;
	}
	T8_ = (NimStringDesc*)0;
	T8_ = copyStr(s, i);
	result = nimrtl_resizeString(result, T8_->Sup.len + 0);
appendString(result, T8_);
	return result;
}

N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsparallelReplace)(NimStringDesc* s, TY_9cWsBWKSkYcDRI59aMfjP0sw* subs, NI subsLen_0) {
	NimStringDesc* result;
	NI i;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c;
	TY_Qdg3zgcNlmwGTTeVxyC9bbw caps;
	NimStringDesc* T19_;
	result = (NimStringDesc*)0;
	result = nimrtl_copyString(((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_9));
	i = ((NI) 0);
	memset((void*)(&c), 0, sizeof(c));
	memset((void*)caps, 0, sizeof(caps));
	{
		while (1) {
			if (!(i < (s ? s->Sup.len : 0))) goto LA2;
			{
				{
					NI j;
					NI colontmp_;
					NI res;
					j = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = (subsLen_0-1);
					res = ((NI) 0);
					{
						while (1) {
							NI x;
							if (!(res <= colontmp_)) goto LA6;
							j = res;
							c.ml = ((NI) 0);
							x = npegsrawMatch(s, subs[j].Field0, i, (&c));
							{
								if (!(((NI) 0) < x)) goto LA9_;
								{
									NI k;
									NI colontmp__2;
									NI res_2;
									k = (NI)0;
									colontmp__2 = (NI)0;
									colontmp__2 = (NI)(c.ml - ((NI) 1));
									res_2 = ((NI) 0);
									{
										while (1) {
											NI startIdx;
											NI endIdx;
											if (!(res_2 <= colontmp__2)) goto LA13;
											k = res_2;
											startIdx = c.matches[(k)- 0].Field0;
											endIdx = c.matches[(k)- 0].Field1;
											{
												if (!!((startIdx == ((NI) -1)))) goto LA16_;
												caps[(k)- 0] = copyStrLast(s, startIdx, endIdx);
											}
											goto LA14_;
											LA16_: ;
											{
												caps[(k)- 0] = nimrtl_copyString(NIM_NIL);
											}
											LA14_: ;
											res_2 += ((NI) 1);
										} LA13: ;
									}
								}
								nsuAddf((&result), subs[j].Field1, caps, 20);
								i += x;
								goto LA3;
							}
							LA9_: ;
							res += ((NI) 1);
						} LA6: ;
					}
				}
				result = addChar(result, s->data[i]);
				i += ((NI) 1);
			} LA3: ;
		} LA2: ;
	}
	T19_ = (NimStringDesc*)0;
	T19_ = copyStr(s, i);
	result = nimrtl_resizeString(result, T19_->Sup.len + 0);
appendString(result, T19_);
	return result;
}

N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsreplacecb)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA sub, TY_kuVtcXAXJL2ZgjFzPoOoiw cb) {
	NimStringDesc* result;
	NI i;
	TY_Qdg3zgcNlmwGTTeVxyC9bbw caps;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c;
	NI m;
	NimStringDesc* T17_;
	result = (NimStringDesc*)0;
	result = nimrtl_copyString(((NimStringDesc*) &TM_YGOrctedenU9ao6jM7xmy6g_9));
	i = ((NI) 0);
	memset((void*)caps, 0, sizeof(caps));
	memset((void*)(&c), 0, sizeof(c));
	m = ((NI) 0);
	{
		while (1) {
			NI x;
			if (!(i < (s ? s->Sup.len : 0))) goto LA2;
			c.ml = ((NI) 0);
			x = npegsrawMatch(s, sub, i, (&c));
			{
				if (!(x <= ((NI) 0))) goto LA5_;
				result = addChar(result, s->data[i]);
				i += ((NI) 1);
			}
			goto LA3_;
			LA5_: ;
			{
				NimStringDesc* T16_;
				{
					NI k;
					NI colontmp_;
					NI res;
					k = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = (NI)(c.ml - ((NI) 1));
					res = ((NI) 0);
					{
						while (1) {
							NI startIdx;
							NI endIdx;
							if (!(res <= colontmp_)) goto LA10;
							k = res;
							startIdx = c.matches[(k)- 0].Field0;
							endIdx = c.matches[(k)- 0].Field1;
							{
								if (!!((startIdx == ((NI) -1)))) goto LA13_;
								caps[(k)- 0] = copyStrLast(s, startIdx, endIdx);
							}
							goto LA11_;
							LA13_: ;
							{
								caps[(k)- 0] = nimrtl_copyString(NIM_NIL);
							}
							LA11_: ;
							res += ((NI) 1);
						} LA10: ;
					}
				}
				T16_ = (NimStringDesc*)0;
				T16_ = cb.ClE_0? cb.ClP_0(m, c.ml, caps, 20, cb.ClE_0):((TM_YGOrctedenU9ao6jM7xmy6g_39)(cb.ClP_0))(m, c.ml, caps, 20);
				result = nimrtl_resizeString(result, T16_->Sup.len + 0);
appendString(result, T16_);
				i += x;
				m += ((NI) 1);
			}
			LA3_: ;
		} LA2: ;
	}
	T17_ = (NimStringDesc*)0;
	T17_ = copyStr(s, i);
	result = nimrtl_resizeString(result, T17_->Sup.len + 0);
appendString(result, T17_);
	return result;
}

N_LIB_EXPORT N_CDECL(void, npegstransformFile)(NimStringDesc* infile, NimStringDesc* outfile, TY_9cWsBWKSkYcDRI59aMfjP0sw* subs, NI subsLen_0) {
	NimStringDesc* x;
	NimStringDesc* T1_;
	x = readFile_T9cm5LIRX2tKEH9aREBZ8A0w(infile);
	T1_ = (NimStringDesc*)0;
	T1_ = npegsparallelReplace(x, subs, subsLen_0);
	writeFile_c1B29b0ZdDRPHc27YaKqwaA(outfile, T1_);
}

N_LIB_EXPORT N_CDECL(TY_sM4lkSb7zS6F7OVMvW9cffQ*, npegssplit)(NimStringDesc* s, Node_0qztr5Keivtxacz23lA4IA sep) {
	TY_sM4lkSb7zS6F7OVMvW9cffQ* result;
	result = (TY_sM4lkSb7zS6F7OVMvW9cffQ*)0;
	result = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) nimrtl_newSeq((&NTI_sM4lkSb7zS6F7OVMvW9cffQ_), 0);
	{
		NimStringDesc* x;
		Captures_tZhlqR24EekS3w5Qr6WNZQ c;
		NI first;
		NI last;
		x = (NimStringDesc*)0;
		memset((void*)(&c), 0, sizeof(c));
		first = ((NI) 0);
		last = ((NI) 0);
		{
			while (1) {
				NI x_2;
				if (!(last < (s ? s->Sup.len : 0))) goto LA3;
				c.ml = ((NI) 0);
				x_2 = npegsrawMatch(s, sep, last, (&c));
				{
					if (!(((NI) 0) < x_2)) goto LA6_;
					last += x_2;
				}
				LA6_: ;
				first = last;
				{
					while (1) {
						if (!(last < (s ? s->Sup.len : 0))) goto LA9;
						last += ((NI) 1);
						c.ml = ((NI) 0);
						x_2 = npegsrawMatch(s, sep, last, (&c));
						{
							if (!(((NI) 0) < x_2)) goto LA12_;
							goto LA8;
						}
						LA12_: ;
					} LA9: ;
				} LA8: ;
				{
					NimStringDesc* T18_;
					if (!(first < last)) goto LA16_;
					x = copyStrLast(s, first, (NI)(last - ((NI) 1)));
					result = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV2(&(result)->Sup, sizeof(NimStringDesc*));
					T18_ = (NimStringDesc*)0;
					T18_ = result->data[result->Sup.len]; result->data[result->Sup.len] = nimrtl_copyStringRC1(x);
					if (T18_) nimGCunrefNoCycle(T18_);
					++result->Sup.len;
				}
				LA16_: ;
			} LA3: ;
		}
	}
	return result;
}
NIM_EXTERNC N_NOINLINE(void, stdlib_pegsInit000)(void) {
}

NIM_EXTERNC N_NOINLINE(void, stdlib_pegsDatInit000)(void) {
static TNimNode* TM_YGOrctedenU9ao6jM7xmy6g_2[33];
NI TM_YGOrctedenU9ao6jM7xmy6g_4;
static char* NIM_CONST TM_YGOrctedenU9ao6jM7xmy6g_3[33] = {
"pkEmpty", 
"pkAny", 
"pkAnyRune", 
"pkNewLine", 
"pkLetter", 
"pkLower", 
"pkUpper", 
"pkTitle", 
"pkWhitespace", 
"pkTerminal", 
"pkTerminalIgnoreCase", 
"pkTerminalIgnoreStyle", 
"pkChar", 
"pkCharChoice", 
"pkNonTerminal", 
"pkSequence", 
"pkOrderedChoice", 
"pkGreedyRep", 
"pkGreedyRepChar", 
"pkGreedyRepSet", 
"pkGreedyAny", 
"pkOption", 
"pkAndPredicate", 
"pkNotPredicate", 
"pkCapture", 
"pkBackRef", 
"pkBackRefIgnoreCase", 
"pkBackRefIgnoreStyle", 
"pkSearch", 
"pkCapturedSearch", 
"pkRule", 
"pkList", 
"pkStartAnchor"};
static TNimNode* TM_YGOrctedenU9ao6jM7xmy6g_5[5];
static TNimNode* TM_YGOrctedenU9ao6jM7xmy6g_6[2];
NI TM_YGOrctedenU9ao6jM7xmy6g_8;
static char* NIM_CONST TM_YGOrctedenU9ao6jM7xmy6g_7[2] = {
"ntDeclared", 
"ntUsed"};
static TNimNode TM_YGOrctedenU9ao6jM7xmy6g_0[53];
NTI_HDqWPvEAxZK51ZcfaeQEdg_.size = sizeof(TY_nmiMWKVIe46vacnhAFrQvw_Set);
NTI_HDqWPvEAxZK51ZcfaeQEdg_.kind = 19;
NTI_HDqWPvEAxZK51ZcfaeQEdg_.base = (&NTI_nmiMWKVIe46vacnhAFrQvw_);
NTI_HDqWPvEAxZK51ZcfaeQEdg_.flags = 3;
TM_YGOrctedenU9ao6jM7xmy6g_0[0].len = 0; TM_YGOrctedenU9ao6jM7xmy6g_0[0].kind = 0;
NTI_HDqWPvEAxZK51ZcfaeQEdg_.node = &TM_YGOrctedenU9ao6jM7xmy6g_0[0];
NTI_DWDl83X3sWmMXGYAzF5Aug_.size = sizeof(TY_nmiMWKVIe46vacnhAFrQvw_Set*);
NTI_DWDl83X3sWmMXGYAzF5Aug_.kind = 22;
NTI_DWDl83X3sWmMXGYAzF5Aug_.base = (&NTI_HDqWPvEAxZK51ZcfaeQEdg_);
NTI_DWDl83X3sWmMXGYAzF5Aug_.flags = 2;
NTI_DWDl83X3sWmMXGYAzF5Aug_.marker = Marker_TY_DWDl83X3sWmMXGYAzF5Aug;
NTI_0qztr5Keivtxacz23lA4IA_.size = sizeof(Node_0qztr5Keivtxacz23lA4IA);
NTI_0qztr5Keivtxacz23lA4IA_.kind = 18;
NTI_0qztr5Keivtxacz23lA4IA_.base = 0;
NTI_r9a6rAhGclsLWkBysfmtr6Q_.size = sizeof(PegKind_r9a6rAhGclsLWkBysfmtr6Q);
NTI_r9a6rAhGclsLWkBysfmtr6Q_.kind = 14;
NTI_r9a6rAhGclsLWkBysfmtr6Q_.base = 0;
NTI_r9a6rAhGclsLWkBysfmtr6Q_.flags = 3;
for (TM_YGOrctedenU9ao6jM7xmy6g_4 = 0; TM_YGOrctedenU9ao6jM7xmy6g_4 < 33; TM_YGOrctedenU9ao6jM7xmy6g_4++) {
TM_YGOrctedenU9ao6jM7xmy6g_0[TM_YGOrctedenU9ao6jM7xmy6g_4+2].kind = 1;
TM_YGOrctedenU9ao6jM7xmy6g_0[TM_YGOrctedenU9ao6jM7xmy6g_4+2].offset = TM_YGOrctedenU9ao6jM7xmy6g_4;
TM_YGOrctedenU9ao6jM7xmy6g_0[TM_YGOrctedenU9ao6jM7xmy6g_4+2].name = TM_YGOrctedenU9ao6jM7xmy6g_3[TM_YGOrctedenU9ao6jM7xmy6g_4];
TM_YGOrctedenU9ao6jM7xmy6g_2[TM_YGOrctedenU9ao6jM7xmy6g_4] = &TM_YGOrctedenU9ao6jM7xmy6g_0[TM_YGOrctedenU9ao6jM7xmy6g_4+2];
}
TM_YGOrctedenU9ao6jM7xmy6g_0[35].len = 33; TM_YGOrctedenU9ao6jM7xmy6g_0[35].kind = 2; TM_YGOrctedenU9ao6jM7xmy6g_0[35].sons = &TM_YGOrctedenU9ao6jM7xmy6g_2[0];
NTI_r9a6rAhGclsLWkBysfmtr6Q_.node = &TM_YGOrctedenU9ao6jM7xmy6g_0[35];
TM_YGOrctedenU9ao6jM7xmy6g_0[1].kind = 3;
TM_YGOrctedenU9ao6jM7xmy6g_0[1].offset = offsetof(Node_0qztr5Keivtxacz23lA4IA, kind);
TM_YGOrctedenU9ao6jM7xmy6g_0[1].typ = (&NTI_r9a6rAhGclsLWkBysfmtr6Q_);
TM_YGOrctedenU9ao6jM7xmy6g_0[1].name = "kind";
TM_YGOrctedenU9ao6jM7xmy6g_0[1].sons = &NimDT__0qztr5Keivtxacz23lA4IA_kind[0];
TM_YGOrctedenU9ao6jM7xmy6g_0[1].len = 33;
TM_YGOrctedenU9ao6jM7xmy6g_0[36].len = 0; TM_YGOrctedenU9ao6jM7xmy6g_0[36].kind = 2;
NimDT__0qztr5Keivtxacz23lA4IA_kind[0] = &TM_YGOrctedenU9ao6jM7xmy6g_0[36];
NimDT__0qztr5Keivtxacz23lA4IA_kind[1] = &TM_YGOrctedenU9ao6jM7xmy6g_0[36];
NimDT__0qztr5Keivtxacz23lA4IA_kind[2] = &TM_YGOrctedenU9ao6jM7xmy6g_0[36];
NimDT__0qztr5Keivtxacz23lA4IA_kind[3] = &TM_YGOrctedenU9ao6jM7xmy6g_0[36];
NimDT__0qztr5Keivtxacz23lA4IA_kind[4] = &TM_YGOrctedenU9ao6jM7xmy6g_0[36];
NimDT__0qztr5Keivtxacz23lA4IA_kind[5] = &TM_YGOrctedenU9ao6jM7xmy6g_0[36];
NimDT__0qztr5Keivtxacz23lA4IA_kind[6] = &TM_YGOrctedenU9ao6jM7xmy6g_0[36];
NimDT__0qztr5Keivtxacz23lA4IA_kind[7] = &TM_YGOrctedenU9ao6jM7xmy6g_0[36];
NimDT__0qztr5Keivtxacz23lA4IA_kind[8] = &TM_YGOrctedenU9ao6jM7xmy6g_0[36];
TM_YGOrctedenU9ao6jM7xmy6g_0[37].kind = 1;
TM_YGOrctedenU9ao6jM7xmy6g_0[37].offset = offsetof(Node_0qztr5Keivtxacz23lA4IA, kindU.term);
TM_YGOrctedenU9ao6jM7xmy6g_0[37].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg_);
TM_YGOrctedenU9ao6jM7xmy6g_0[37].name = "term";
NimDT__0qztr5Keivtxacz23lA4IA_kind[9] = &TM_YGOrctedenU9ao6jM7xmy6g_0[37];
NimDT__0qztr5Keivtxacz23lA4IA_kind[10] = &TM_YGOrctedenU9ao6jM7xmy6g_0[37];
NimDT__0qztr5Keivtxacz23lA4IA_kind[11] = &TM_YGOrctedenU9ao6jM7xmy6g_0[37];
TM_YGOrctedenU9ao6jM7xmy6g_0[38].kind = 1;
TM_YGOrctedenU9ao6jM7xmy6g_0[38].offset = offsetof(Node_0qztr5Keivtxacz23lA4IA, kindU.ch);
TM_YGOrctedenU9ao6jM7xmy6g_0[38].typ = (&NTI_nmiMWKVIe46vacnhAFrQvw_);
TM_YGOrctedenU9ao6jM7xmy6g_0[38].name = "ch";
NimDT__0qztr5Keivtxacz23lA4IA_kind[12] = &TM_YGOrctedenU9ao6jM7xmy6g_0[38];
NimDT__0qztr5Keivtxacz23lA4IA_kind[18] = &TM_YGOrctedenU9ao6jM7xmy6g_0[38];
TM_YGOrctedenU9ao6jM7xmy6g_0[39].kind = 1;
TM_YGOrctedenU9ao6jM7xmy6g_0[39].offset = offsetof(Node_0qztr5Keivtxacz23lA4IA, kindU.charChoice);
TM_YGOrctedenU9ao6jM7xmy6g_0[39].typ = (&NTI_DWDl83X3sWmMXGYAzF5Aug_);
TM_YGOrctedenU9ao6jM7xmy6g_0[39].name = "charChoice";
NimDT__0qztr5Keivtxacz23lA4IA_kind[13] = &TM_YGOrctedenU9ao6jM7xmy6g_0[39];
NimDT__0qztr5Keivtxacz23lA4IA_kind[19] = &TM_YGOrctedenU9ao6jM7xmy6g_0[39];
NTI_VMn2tGRm8B9a9cqMEec3KPEA_.size = sizeof(NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA);
NTI_VMn2tGRm8B9a9cqMEec3KPEA_.kind = 18;
NTI_VMn2tGRm8B9a9cqMEec3KPEA_.base = 0;
TM_YGOrctedenU9ao6jM7xmy6g_5[0] = &TM_YGOrctedenU9ao6jM7xmy6g_0[42];
TM_YGOrctedenU9ao6jM7xmy6g_0[42].kind = 1;
TM_YGOrctedenU9ao6jM7xmy6g_0[42].offset = offsetof(NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA, name);
TM_YGOrctedenU9ao6jM7xmy6g_0[42].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg_);
TM_YGOrctedenU9ao6jM7xmy6g_0[42].name = "name";
TM_YGOrctedenU9ao6jM7xmy6g_5[1] = &TM_YGOrctedenU9ao6jM7xmy6g_0[43];
TM_YGOrctedenU9ao6jM7xmy6g_0[43].kind = 1;
TM_YGOrctedenU9ao6jM7xmy6g_0[43].offset = offsetof(NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA, line);
TM_YGOrctedenU9ao6jM7xmy6g_0[43].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_YGOrctedenU9ao6jM7xmy6g_0[43].name = "line";
TM_YGOrctedenU9ao6jM7xmy6g_5[2] = &TM_YGOrctedenU9ao6jM7xmy6g_0[44];
TM_YGOrctedenU9ao6jM7xmy6g_0[44].kind = 1;
TM_YGOrctedenU9ao6jM7xmy6g_0[44].offset = offsetof(NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA, col);
TM_YGOrctedenU9ao6jM7xmy6g_0[44].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_YGOrctedenU9ao6jM7xmy6g_0[44].name = "col";
TM_YGOrctedenU9ao6jM7xmy6g_5[3] = &TM_YGOrctedenU9ao6jM7xmy6g_0[45];
NTI_raeF9a9anryo8cnwfITE0Glw_.size = sizeof(NonTerminalFlag_raeF9a9anryo8cnwfITE0Glw);
NTI_raeF9a9anryo8cnwfITE0Glw_.kind = 14;
NTI_raeF9a9anryo8cnwfITE0Glw_.base = 0;
NTI_raeF9a9anryo8cnwfITE0Glw_.flags = 3;
for (TM_YGOrctedenU9ao6jM7xmy6g_8 = 0; TM_YGOrctedenU9ao6jM7xmy6g_8 < 2; TM_YGOrctedenU9ao6jM7xmy6g_8++) {
TM_YGOrctedenU9ao6jM7xmy6g_0[TM_YGOrctedenU9ao6jM7xmy6g_8+46].kind = 1;
TM_YGOrctedenU9ao6jM7xmy6g_0[TM_YGOrctedenU9ao6jM7xmy6g_8+46].offset = TM_YGOrctedenU9ao6jM7xmy6g_8;
TM_YGOrctedenU9ao6jM7xmy6g_0[TM_YGOrctedenU9ao6jM7xmy6g_8+46].name = TM_YGOrctedenU9ao6jM7xmy6g_7[TM_YGOrctedenU9ao6jM7xmy6g_8];
TM_YGOrctedenU9ao6jM7xmy6g_6[TM_YGOrctedenU9ao6jM7xmy6g_8] = &TM_YGOrctedenU9ao6jM7xmy6g_0[TM_YGOrctedenU9ao6jM7xmy6g_8+46];
}
TM_YGOrctedenU9ao6jM7xmy6g_0[48].len = 2; TM_YGOrctedenU9ao6jM7xmy6g_0[48].kind = 2; TM_YGOrctedenU9ao6jM7xmy6g_0[48].sons = &TM_YGOrctedenU9ao6jM7xmy6g_6[0];
NTI_raeF9a9anryo8cnwfITE0Glw_.node = &TM_YGOrctedenU9ao6jM7xmy6g_0[48];
NTI_lU0PfHKIn29cxb4xJ1TaXlA_.size = sizeof(NonTerminalFlag_raeF9a9anryo8cnwfITE0Glw_Set);
NTI_lU0PfHKIn29cxb4xJ1TaXlA_.kind = 19;
NTI_lU0PfHKIn29cxb4xJ1TaXlA_.base = (&NTI_raeF9a9anryo8cnwfITE0Glw_);
NTI_lU0PfHKIn29cxb4xJ1TaXlA_.flags = 3;
TM_YGOrctedenU9ao6jM7xmy6g_0[49].len = 0; TM_YGOrctedenU9ao6jM7xmy6g_0[49].kind = 0;
NTI_lU0PfHKIn29cxb4xJ1TaXlA_.node = &TM_YGOrctedenU9ao6jM7xmy6g_0[49];
TM_YGOrctedenU9ao6jM7xmy6g_0[45].kind = 1;
TM_YGOrctedenU9ao6jM7xmy6g_0[45].offset = offsetof(NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA, flags);
TM_YGOrctedenU9ao6jM7xmy6g_0[45].typ = (&NTI_lU0PfHKIn29cxb4xJ1TaXlA_);
TM_YGOrctedenU9ao6jM7xmy6g_0[45].name = "flags";
TM_YGOrctedenU9ao6jM7xmy6g_5[4] = &TM_YGOrctedenU9ao6jM7xmy6g_0[50];
TM_YGOrctedenU9ao6jM7xmy6g_0[50].kind = 1;
TM_YGOrctedenU9ao6jM7xmy6g_0[50].offset = offsetof(NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA, rule);
TM_YGOrctedenU9ao6jM7xmy6g_0[50].typ = (&NTI_0qztr5Keivtxacz23lA4IA_);
TM_YGOrctedenU9ao6jM7xmy6g_0[50].name = "rule";
TM_YGOrctedenU9ao6jM7xmy6g_0[41].len = 5; TM_YGOrctedenU9ao6jM7xmy6g_0[41].kind = 2; TM_YGOrctedenU9ao6jM7xmy6g_0[41].sons = &TM_YGOrctedenU9ao6jM7xmy6g_5[0];
NTI_VMn2tGRm8B9a9cqMEec3KPEA_.node = &TM_YGOrctedenU9ao6jM7xmy6g_0[41];
NTI_ne9c8mGWiMWXBIOmu9cRFBTw_.size = sizeof(NonTerminalObj_VMn2tGRm8B9a9cqMEec3KPEA*);
NTI_ne9c8mGWiMWXBIOmu9cRFBTw_.kind = 22;
NTI_ne9c8mGWiMWXBIOmu9cRFBTw_.base = (&NTI_VMn2tGRm8B9a9cqMEec3KPEA_);
NTI_ne9c8mGWiMWXBIOmu9cRFBTw_.marker = Marker_TY_ne9c8mGWiMWXBIOmu9cRFBTw;
TM_YGOrctedenU9ao6jM7xmy6g_0[40].kind = 1;
TM_YGOrctedenU9ao6jM7xmy6g_0[40].offset = offsetof(Node_0qztr5Keivtxacz23lA4IA, kindU.nt);
TM_YGOrctedenU9ao6jM7xmy6g_0[40].typ = (&NTI_ne9c8mGWiMWXBIOmu9cRFBTw_);
TM_YGOrctedenU9ao6jM7xmy6g_0[40].name = "nt";
NimDT__0qztr5Keivtxacz23lA4IA_kind[14] = &TM_YGOrctedenU9ao6jM7xmy6g_0[40];
TM_YGOrctedenU9ao6jM7xmy6g_0[51].kind = 1;
TM_YGOrctedenU9ao6jM7xmy6g_0[51].offset = offsetof(Node_0qztr5Keivtxacz23lA4IA, kindU.index);
TM_YGOrctedenU9ao6jM7xmy6g_0[51].typ = (&NTI_a9bIsIkdQvQMv0xYGrfgSag_);
TM_YGOrctedenU9ao6jM7xmy6g_0[51].name = "index";
NimDT__0qztr5Keivtxacz23lA4IA_kind[25] = &TM_YGOrctedenU9ao6jM7xmy6g_0[51];
NimDT__0qztr5Keivtxacz23lA4IA_kind[26] = &TM_YGOrctedenU9ao6jM7xmy6g_0[51];
NimDT__0qztr5Keivtxacz23lA4IA_kind[27] = &TM_YGOrctedenU9ao6jM7xmy6g_0[51];
TM_YGOrctedenU9ao6jM7xmy6g_0[52].kind = 1;
TM_YGOrctedenU9ao6jM7xmy6g_0[52].offset = offsetof(Node_0qztr5Keivtxacz23lA4IA, kindU.sons);
TM_YGOrctedenU9ao6jM7xmy6g_0[52].typ = (&NTI_Wjn0aMA9aB3dP6CVOwwvGJg_);
TM_YGOrctedenU9ao6jM7xmy6g_0[52].name = "sons";
NimDT__0qztr5Keivtxacz23lA4IA_kind[33] = &TM_YGOrctedenU9ao6jM7xmy6g_0[52];
NTI_0qztr5Keivtxacz23lA4IA_.node = &TM_YGOrctedenU9ao6jM7xmy6g_0[1];
NTI_Wjn0aMA9aB3dP6CVOwwvGJg_.size = sizeof(TY_Wjn0aMA9aB3dP6CVOwwvGJg*);
NTI_Wjn0aMA9aB3dP6CVOwwvGJg_.kind = 24;
NTI_Wjn0aMA9aB3dP6CVOwwvGJg_.base = (&NTI_0qztr5Keivtxacz23lA4IA_);
NTI_Wjn0aMA9aB3dP6CVOwwvGJg_.marker = Marker_TY_Wjn0aMA9aB3dP6CVOwwvGJg;
}

