kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

meta_tables.c (55951B)


      1 /* Generated by gramgen from meta.ebnf. */
      2 #include "meta_tables.h"
      3 #include <kit/support/gram_parse_tables.h>
      4 #include <kit/support/gram_lex_tables.h>
      5 
      6 static const KitGramTokenKind g_sets[] = {
      7     KIT_GRAM_META_TOK_TOKEN_DECL, KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_PRATT_DECL, KIT_GRAM_META_TOK_LEX_DECL, KIT_GRAM_META_TOK_MACHINE_DECL, KIT_GRAM_META_TOK_PIPE, KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_LPAREN, KIT_GRAM_META_TOK_QUESTION, KIT_GRAM_META_TOK_STAR, KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_SKIP_DECL, KIT_GRAM_META_TOK_DEF_DECL, KIT_GRAM_META_TOK_KEYWORDS_DECL, KIT_GRAM_META_TOK_EQ, KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_LPAREN, KIT_GRAM_META_TOK_CHAR_CLASS, KIT_GRAM_META_TOK_UNICODE_PROP, KIT_GRAM_META_TOK_SHORTHAND, KIT_GRAM_META_TOK_DOT, KIT_GRAM_META_TOK_ANCHOR, KIT_GRAM_META_TOK_QUESTION, KIT_GRAM_META_TOK_STAR, KIT_GRAM_META_TOK_PLUS, KIT_GRAM_META_TOK_REPEAT
      8 };
      9 static const uint16_t g_set_off[] = { 0, 5, 6, 9, 11, 12, 14, 18, 19, 27, 31 };
     10 
     11 static const KitGramSym sub_0[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_item) };
     12 static const KitGramSym sub_1[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_alt_tail) };
     13 static const KitGramSym sub_2[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_factor) };
     14 static const KitGramSym sub_3[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_quant) };
     15 static const KitGramSym sub_4[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_pratt_line) };
     16 static const KitGramSym sub_5[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_pratt_atom) };
     17 static const KitGramSym sub_6[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_lex_line) };
     18 static const KitGramSym sub_7[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_lex_line) };
     19 static const KitGramSym sub_8[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_kw_entry) };
     20 static const KitGramSym sub_9[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_kw_value) };
     21 static const KitGramSym sub_10[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_lex_alt_tail) };
     22 static const KitGramSym sub_11[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_lex_factor) };
     23 static const KitGramSym sub_12[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_lex_quant) };
     24 
     25 static const KitGramSym p_r0_0[] = { { .kind = KIT_GRAM_S_REP, .first = 0, .sub = sub_0, .nsub = 1 } };
     26 static const KitGramSym p_r1_0[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_decl) };
     27 static const KitGramSym p_r1_1[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_rule) };
     28 static const KitGramSym p_r1_2[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_pratt_rule) };
     29 static const KitGramSym p_r1_3[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_lex_block) };
     30 static const KitGramSym p_r1_4[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_machine_block) };
     31 static const KitGramSym p_r2_0[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_token_decl) };
     32 static const KitGramSym p_r3_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_TOKEN_DECL), KIT_GRAM_TERM(KIT_GRAM_META_TOK_NAME), KIT_GRAM_TERM(KIT_GRAM_META_TOK_EQ), KIT_GRAM_TERM(KIT_GRAM_META_TOK_STRING), KIT_GRAM_TERM(KIT_GRAM_META_TOK_SEMI) };
     33 static const KitGramSym p_r4_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_NAME), KIT_GRAM_TERM(KIT_GRAM_META_TOK_EQ), KIT_GRAM_RULE(KIT_GRAM_META_R_alt), KIT_GRAM_TERM(KIT_GRAM_META_TOK_SEMI) };
     34 static const KitGramSym p_r5_0[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_seq), { .kind = KIT_GRAM_S_REP, .first = 1, .sub = sub_1, .nsub = 1 } };
     35 static const KitGramSym p_r6_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_PIPE), KIT_GRAM_RULE(KIT_GRAM_META_R_seq) };
     36 static const KitGramSym p_r7_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_EMPTY_DECL) };
     37 static const KitGramSym p_r7_1[] = { { .kind = KIT_GRAM_S_REP, .first = 2, .sub = sub_2, .nsub = 1 } };
     38 static const KitGramSym p_r8_0[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_primary), { .kind = KIT_GRAM_S_OPT, .first = 3, .sub = sub_3, .nsub = 1 } };
     39 static const KitGramSym p_r9_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_NAME) };
     40 static const KitGramSym p_r9_1[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_STRING) };
     41 static const KitGramSym p_r9_2[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_LPAREN), KIT_GRAM_RULE(KIT_GRAM_META_R_alt), KIT_GRAM_TERM(KIT_GRAM_META_TOK_RPAREN) };
     42 static const KitGramSym p_r10_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_QUESTION) };
     43 static const KitGramSym p_r10_1[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_STAR) };
     44 static const KitGramSym p_r11_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_PRATT_DECL), KIT_GRAM_TERM(KIT_GRAM_META_TOK_NAME), KIT_GRAM_TERM(KIT_GRAM_META_TOK_LBRACE), { .kind = KIT_GRAM_S_REP, .first = 4, .sub = sub_4, .nsub = 1 }, KIT_GRAM_TERM(KIT_GRAM_META_TOK_RBRACE) };
     45 static const KitGramSym p_r12_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_NAME), KIT_GRAM_RULE(KIT_GRAM_META_R_pratt_atom), { .kind = KIT_GRAM_S_REP, .first = 5, .sub = sub_5, .nsub = 1 }, KIT_GRAM_TERM(KIT_GRAM_META_TOK_SEMI) };
     46 static const KitGramSym p_r13_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_NAME) };
     47 static const KitGramSym p_r13_1[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_STRING) };
     48 static const KitGramSym p_r14_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_LEX_DECL), KIT_GRAM_RULE(KIT_GRAM_META_R_lex_name), KIT_GRAM_RULE(KIT_GRAM_META_R_lex_mode), KIT_GRAM_TERM(KIT_GRAM_META_TOK_LBRACE), { .kind = KIT_GRAM_S_REP, .first = 6, .sub = sub_6, .nsub = 1 }, KIT_GRAM_TERM(KIT_GRAM_META_TOK_RBRACE) };
     49 static const KitGramSym p_r15_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_MACHINE_DECL), KIT_GRAM_TERM(KIT_GRAM_META_TOK_NAME), KIT_GRAM_TERM(KIT_GRAM_META_TOK_LBRACE), { .kind = KIT_GRAM_S_REP, .first = 6, .sub = sub_7, .nsub = 1 }, KIT_GRAM_TERM(KIT_GRAM_META_TOK_RBRACE) };
     50 static const KitGramSym p_r16_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_NAME) };
     51 static const KitGramSym p_r17_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_COLON), KIT_GRAM_TERM(KIT_GRAM_META_TOK_NAME) };
     52 static const KitGramSym p_r18_0[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_lex_rule) };
     53 static const KitGramSym p_r18_1[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_skip_rule) };
     54 static const KitGramSym p_r18_2[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_def_rule) };
     55 static const KitGramSym p_r18_3[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_keywords_block) };
     56 static const KitGramSym p_r19_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_NAME), KIT_GRAM_TERM(KIT_GRAM_META_TOK_EQ), KIT_GRAM_RULE(KIT_GRAM_META_R_lex_alt), KIT_GRAM_TERM(KIT_GRAM_META_TOK_SEMI) };
     57 static const KitGramSym p_r20_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_SKIP_DECL), KIT_GRAM_TERM(KIT_GRAM_META_TOK_NAME), KIT_GRAM_TERM(KIT_GRAM_META_TOK_EQ), KIT_GRAM_RULE(KIT_GRAM_META_R_lex_alt), KIT_GRAM_TERM(KIT_GRAM_META_TOK_SEMI) };
     58 static const KitGramSym p_r21_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_DEF_DECL), KIT_GRAM_TERM(KIT_GRAM_META_TOK_NAME), KIT_GRAM_TERM(KIT_GRAM_META_TOK_EQ), KIT_GRAM_RULE(KIT_GRAM_META_R_lex_alt), KIT_GRAM_TERM(KIT_GRAM_META_TOK_SEMI) };
     59 static const KitGramSym p_r22_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_KEYWORDS_DECL), KIT_GRAM_TERM(KIT_GRAM_META_TOK_NAME), KIT_GRAM_TERM(KIT_GRAM_META_TOK_LBRACE), { .kind = KIT_GRAM_S_REP, .first = 5, .sub = sub_8, .nsub = 1 }, KIT_GRAM_TERM(KIT_GRAM_META_TOK_RBRACE) };
     60 static const KitGramSym p_r23_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_NAME), { .kind = KIT_GRAM_S_OPT, .first = 7, .sub = sub_9, .nsub = 1 }, KIT_GRAM_TERM(KIT_GRAM_META_TOK_SEMI) };
     61 static const KitGramSym p_r23_1[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_STRING), KIT_GRAM_TERM(KIT_GRAM_META_TOK_SEMI) };
     62 static const KitGramSym p_r24_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_EQ), KIT_GRAM_TERM(KIT_GRAM_META_TOK_STRING) };
     63 static const KitGramSym p_r25_0[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_lex_seq), { .kind = KIT_GRAM_S_REP, .first = 1, .sub = sub_10, .nsub = 1 } };
     64 static const KitGramSym p_r26_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_PIPE), KIT_GRAM_RULE(KIT_GRAM_META_R_lex_seq) };
     65 static const KitGramSym p_r27_0[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_lex_factor), { .kind = KIT_GRAM_S_REP, .first = 8, .sub = sub_11, .nsub = 1 } };
     66 static const KitGramSym p_r28_0[] = { KIT_GRAM_RULE(KIT_GRAM_META_R_lex_primary), { .kind = KIT_GRAM_S_OPT, .first = 9, .sub = sub_12, .nsub = 1 } };
     67 static const KitGramSym p_r29_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_QUESTION) };
     68 static const KitGramSym p_r29_1[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_STAR) };
     69 static const KitGramSym p_r29_2[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_PLUS) };
     70 static const KitGramSym p_r29_3[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_REPEAT) };
     71 static const KitGramSym p_r30_0[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_STRING) };
     72 static const KitGramSym p_r30_1[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_CHAR_CLASS) };
     73 static const KitGramSym p_r30_2[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_UNICODE_PROP) };
     74 static const KitGramSym p_r30_3[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_SHORTHAND) };
     75 static const KitGramSym p_r30_4[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_DOT) };
     76 static const KitGramSym p_r30_5[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_NAME) };
     77 static const KitGramSym p_r30_6[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_LPAREN), KIT_GRAM_RULE(KIT_GRAM_META_R_lex_alt), KIT_GRAM_TERM(KIT_GRAM_META_TOK_RPAREN) };
     78 static const KitGramSym p_r30_7[] = { KIT_GRAM_TERM(KIT_GRAM_META_TOK_ANCHOR) };
     79 
     80 #define PROD(arr) { .syms = (arr), .nsyms = (uint16_t)(sizeof(arr) / sizeof((arr)[0])) }
     81 #define PROD_EMPTY { .syms = NULL, .nsyms = 0 }
     82 
     83 static const KitGramProd prods_r0[] = { PROD(p_r0_0) };
     84 static const KitGramProd prods_r1[] = { PROD(p_r1_0), PROD(p_r1_1), PROD(p_r1_2), PROD(p_r1_3), PROD(p_r1_4) };
     85 static const KitGramProd prods_r2[] = { PROD(p_r2_0) };
     86 static const KitGramProd prods_r3[] = { PROD(p_r3_0) };
     87 static const KitGramProd prods_r4[] = { PROD(p_r4_0) };
     88 static const KitGramProd prods_r5[] = { PROD(p_r5_0) };
     89 static const KitGramProd prods_r6[] = { PROD(p_r6_0) };
     90 static const KitGramProd prods_r7[] = { PROD(p_r7_0), PROD(p_r7_1) };
     91 static const KitGramProd prods_r8[] = { PROD(p_r8_0) };
     92 static const KitGramProd prods_r9[] = { PROD(p_r9_0), PROD(p_r9_1), PROD(p_r9_2) };
     93 static const KitGramProd prods_r10[] = { PROD(p_r10_0), PROD(p_r10_1) };
     94 static const KitGramProd prods_r11[] = { PROD(p_r11_0) };
     95 static const KitGramProd prods_r12[] = { PROD(p_r12_0) };
     96 static const KitGramProd prods_r13[] = { PROD(p_r13_0), PROD(p_r13_1) };
     97 static const KitGramProd prods_r14[] = { PROD(p_r14_0) };
     98 static const KitGramProd prods_r15[] = { PROD(p_r15_0) };
     99 static const KitGramProd prods_r16[] = { PROD(p_r16_0), PROD_EMPTY };
    100 static const KitGramProd prods_r17[] = { PROD(p_r17_0), PROD_EMPTY };
    101 static const KitGramProd prods_r18[] = { PROD(p_r18_0), PROD(p_r18_1), PROD(p_r18_2), PROD(p_r18_3) };
    102 static const KitGramProd prods_r19[] = { PROD(p_r19_0) };
    103 static const KitGramProd prods_r20[] = { PROD(p_r20_0) };
    104 static const KitGramProd prods_r21[] = { PROD(p_r21_0) };
    105 static const KitGramProd prods_r22[] = { PROD(p_r22_0) };
    106 static const KitGramProd prods_r23[] = { PROD(p_r23_0), PROD(p_r23_1) };
    107 static const KitGramProd prods_r24[] = { PROD(p_r24_0) };
    108 static const KitGramProd prods_r25[] = { PROD(p_r25_0) };
    109 static const KitGramProd prods_r26[] = { PROD(p_r26_0) };
    110 static const KitGramProd prods_r27[] = { PROD(p_r27_0) };
    111 static const KitGramProd prods_r28[] = { PROD(p_r28_0) };
    112 static const KitGramProd prods_r29[] = { PROD(p_r29_0), PROD(p_r29_1), PROD(p_r29_2), PROD(p_r29_3) };
    113 static const KitGramProd prods_r30[] = { PROD(p_r30_0), PROD(p_r30_1), PROD(p_r30_2), PROD(p_r30_3), PROD(p_r30_4), PROD(p_r30_5), PROD(p_r30_6), PROD(p_r30_7) };
    114 
    115 static const KitGramTokenKind fst_r0[] = { KIT_GRAM_META_TOK_TOKEN_DECL, KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_PRATT_DECL, KIT_GRAM_META_TOK_LEX_DECL, KIT_GRAM_META_TOK_MACHINE_DECL };
    116 static const uint8_t pp_r0[] = { 0, 0, 0, 0, 0 };
    117 static const KitGramTokenKind flw_r0[] = { KIT_GRAM_META_TOK_EOF };
    118 static const KitGramTokenKind fst_r1[] = { KIT_GRAM_META_TOK_TOKEN_DECL, KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_PRATT_DECL, KIT_GRAM_META_TOK_LEX_DECL, KIT_GRAM_META_TOK_MACHINE_DECL };
    119 static const uint8_t pp_r1[] = { 0, 1, 2, 3, 4 };
    120 static const KitGramTokenKind flw_r1[] = { KIT_GRAM_META_TOK_EOF, KIT_GRAM_META_TOK_TOKEN_DECL, KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_PRATT_DECL, KIT_GRAM_META_TOK_LEX_DECL, KIT_GRAM_META_TOK_MACHINE_DECL };
    121 static const KitGramTokenKind fst_r2[] = { KIT_GRAM_META_TOK_TOKEN_DECL };
    122 static const uint8_t pp_r2[] = { 0 };
    123 static const KitGramTokenKind flw_r2[] = { KIT_GRAM_META_TOK_EOF, KIT_GRAM_META_TOK_TOKEN_DECL, KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_PRATT_DECL, KIT_GRAM_META_TOK_LEX_DECL, KIT_GRAM_META_TOK_MACHINE_DECL };
    124 static const KitGramTokenKind fst_r3[] = { KIT_GRAM_META_TOK_TOKEN_DECL };
    125 static const uint8_t pp_r3[] = { 0 };
    126 static const KitGramTokenKind flw_r3[] = { KIT_GRAM_META_TOK_EOF, KIT_GRAM_META_TOK_TOKEN_DECL, KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_PRATT_DECL, KIT_GRAM_META_TOK_LEX_DECL, KIT_GRAM_META_TOK_MACHINE_DECL };
    127 static const KitGramTokenKind fst_r4[] = { KIT_GRAM_META_TOK_NAME };
    128 static const uint8_t pp_r4[] = { 0 };
    129 static const KitGramTokenKind flw_r4[] = { KIT_GRAM_META_TOK_EOF, KIT_GRAM_META_TOK_TOKEN_DECL, KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_PRATT_DECL, KIT_GRAM_META_TOK_LEX_DECL, KIT_GRAM_META_TOK_MACHINE_DECL };
    130 static const KitGramTokenKind fst_r5[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_PIPE, KIT_GRAM_META_TOK_EMPTY_DECL, KIT_GRAM_META_TOK_LPAREN };
    131 static const uint8_t pp_r5[] = { 0, 0, 0, 0, 0 };
    132 static const KitGramTokenKind flw_r5[] = { KIT_GRAM_META_TOK_SEMI, KIT_GRAM_META_TOK_RPAREN };
    133 static const KitGramTokenKind fst_r6[] = { KIT_GRAM_META_TOK_PIPE };
    134 static const uint8_t pp_r6[] = { 0 };
    135 static const KitGramTokenKind flw_r6[] = { KIT_GRAM_META_TOK_SEMI, KIT_GRAM_META_TOK_PIPE, KIT_GRAM_META_TOK_RPAREN };
    136 static const KitGramTokenKind fst_r7[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_EMPTY_DECL, KIT_GRAM_META_TOK_LPAREN };
    137 static const uint8_t pp_r7[] = { 1, 1, 0, 1 };
    138 static const KitGramTokenKind flw_r7[] = { KIT_GRAM_META_TOK_SEMI, KIT_GRAM_META_TOK_PIPE, KIT_GRAM_META_TOK_RPAREN };
    139 static const KitGramTokenKind fst_r8[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_LPAREN };
    140 static const uint8_t pp_r8[] = { 0, 0, 0 };
    141 static const KitGramTokenKind flw_r8[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_SEMI, KIT_GRAM_META_TOK_PIPE, KIT_GRAM_META_TOK_LPAREN, KIT_GRAM_META_TOK_RPAREN };
    142 static const KitGramTokenKind fst_r9[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_LPAREN };
    143 static const uint8_t pp_r9[] = { 0, 1, 2 };
    144 static const KitGramTokenKind flw_r9[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_SEMI, KIT_GRAM_META_TOK_PIPE, KIT_GRAM_META_TOK_LPAREN, KIT_GRAM_META_TOK_RPAREN, KIT_GRAM_META_TOK_QUESTION, KIT_GRAM_META_TOK_STAR };
    145 static const KitGramTokenKind fst_r10[] = { KIT_GRAM_META_TOK_QUESTION, KIT_GRAM_META_TOK_STAR };
    146 static const uint8_t pp_r10[] = { 0, 1 };
    147 static const KitGramTokenKind flw_r10[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_SEMI, KIT_GRAM_META_TOK_PIPE, KIT_GRAM_META_TOK_LPAREN, KIT_GRAM_META_TOK_RPAREN };
    148 static const KitGramTokenKind fst_r11[] = { KIT_GRAM_META_TOK_PRATT_DECL };
    149 static const uint8_t pp_r11[] = { 0 };
    150 static const KitGramTokenKind flw_r11[] = { KIT_GRAM_META_TOK_EOF, KIT_GRAM_META_TOK_TOKEN_DECL, KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_PRATT_DECL, KIT_GRAM_META_TOK_LEX_DECL, KIT_GRAM_META_TOK_MACHINE_DECL };
    151 static const KitGramTokenKind fst_r12[] = { KIT_GRAM_META_TOK_NAME };
    152 static const uint8_t pp_r12[] = { 0 };
    153 static const KitGramTokenKind flw_r12[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_RBRACE };
    154 static const KitGramTokenKind fst_r13[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING };
    155 static const uint8_t pp_r13[] = { 0, 1 };
    156 static const KitGramTokenKind flw_r13[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_SEMI };
    157 static const KitGramTokenKind fst_r14[] = { KIT_GRAM_META_TOK_LEX_DECL };
    158 static const uint8_t pp_r14[] = { 0 };
    159 static const KitGramTokenKind flw_r14[] = { KIT_GRAM_META_TOK_EOF, KIT_GRAM_META_TOK_TOKEN_DECL, KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_PRATT_DECL, KIT_GRAM_META_TOK_LEX_DECL, KIT_GRAM_META_TOK_MACHINE_DECL };
    160 static const KitGramTokenKind fst_r15[] = { KIT_GRAM_META_TOK_MACHINE_DECL };
    161 static const uint8_t pp_r15[] = { 0 };
    162 static const KitGramTokenKind flw_r15[] = { KIT_GRAM_META_TOK_EOF, KIT_GRAM_META_TOK_TOKEN_DECL, KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_PRATT_DECL, KIT_GRAM_META_TOK_LEX_DECL, KIT_GRAM_META_TOK_MACHINE_DECL };
    163 static const KitGramTokenKind fst_r16[] = { KIT_GRAM_META_TOK_NAME };
    164 static const uint8_t pp_r16[] = { 0 };
    165 static const KitGramTokenKind flw_r16[] = { KIT_GRAM_META_TOK_LBRACE, KIT_GRAM_META_TOK_COLON };
    166 static const KitGramTokenKind fst_r17[] = { KIT_GRAM_META_TOK_COLON };
    167 static const uint8_t pp_r17[] = { 0 };
    168 static const KitGramTokenKind flw_r17[] = { KIT_GRAM_META_TOK_LBRACE };
    169 static const KitGramTokenKind fst_r18[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_SKIP_DECL, KIT_GRAM_META_TOK_DEF_DECL, KIT_GRAM_META_TOK_KEYWORDS_DECL };
    170 static const uint8_t pp_r18[] = { 0, 1, 2, 3 };
    171 static const KitGramTokenKind flw_r18[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_RBRACE, KIT_GRAM_META_TOK_SKIP_DECL, KIT_GRAM_META_TOK_DEF_DECL, KIT_GRAM_META_TOK_KEYWORDS_DECL };
    172 static const KitGramTokenKind fst_r19[] = { KIT_GRAM_META_TOK_NAME };
    173 static const uint8_t pp_r19[] = { 0 };
    174 static const KitGramTokenKind flw_r19[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_RBRACE, KIT_GRAM_META_TOK_SKIP_DECL, KIT_GRAM_META_TOK_DEF_DECL, KIT_GRAM_META_TOK_KEYWORDS_DECL };
    175 static const KitGramTokenKind fst_r20[] = { KIT_GRAM_META_TOK_SKIP_DECL };
    176 static const uint8_t pp_r20[] = { 0 };
    177 static const KitGramTokenKind flw_r20[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_RBRACE, KIT_GRAM_META_TOK_SKIP_DECL, KIT_GRAM_META_TOK_DEF_DECL, KIT_GRAM_META_TOK_KEYWORDS_DECL };
    178 static const KitGramTokenKind fst_r21[] = { KIT_GRAM_META_TOK_DEF_DECL };
    179 static const uint8_t pp_r21[] = { 0 };
    180 static const KitGramTokenKind flw_r21[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_RBRACE, KIT_GRAM_META_TOK_SKIP_DECL, KIT_GRAM_META_TOK_DEF_DECL, KIT_GRAM_META_TOK_KEYWORDS_DECL };
    181 static const KitGramTokenKind fst_r22[] = { KIT_GRAM_META_TOK_KEYWORDS_DECL };
    182 static const uint8_t pp_r22[] = { 0 };
    183 static const KitGramTokenKind flw_r22[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_RBRACE, KIT_GRAM_META_TOK_SKIP_DECL, KIT_GRAM_META_TOK_DEF_DECL, KIT_GRAM_META_TOK_KEYWORDS_DECL };
    184 static const KitGramTokenKind fst_r23[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING };
    185 static const uint8_t pp_r23[] = { 0, 1 };
    186 static const KitGramTokenKind flw_r23[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_RBRACE };
    187 static const KitGramTokenKind fst_r24[] = { KIT_GRAM_META_TOK_EQ };
    188 static const uint8_t pp_r24[] = { 0 };
    189 static const KitGramTokenKind flw_r24[] = { KIT_GRAM_META_TOK_SEMI };
    190 static const KitGramTokenKind fst_r25[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_LPAREN, KIT_GRAM_META_TOK_CHAR_CLASS, KIT_GRAM_META_TOK_UNICODE_PROP, KIT_GRAM_META_TOK_SHORTHAND, KIT_GRAM_META_TOK_DOT, KIT_GRAM_META_TOK_ANCHOR };
    191 static const uint8_t pp_r25[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
    192 static const KitGramTokenKind flw_r25[] = { KIT_GRAM_META_TOK_SEMI, KIT_GRAM_META_TOK_RPAREN };
    193 static const KitGramTokenKind fst_r26[] = { KIT_GRAM_META_TOK_PIPE };
    194 static const uint8_t pp_r26[] = { 0 };
    195 static const KitGramTokenKind flw_r26[] = { KIT_GRAM_META_TOK_SEMI, KIT_GRAM_META_TOK_PIPE, KIT_GRAM_META_TOK_RPAREN };
    196 static const KitGramTokenKind fst_r27[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_LPAREN, KIT_GRAM_META_TOK_CHAR_CLASS, KIT_GRAM_META_TOK_UNICODE_PROP, KIT_GRAM_META_TOK_SHORTHAND, KIT_GRAM_META_TOK_DOT, KIT_GRAM_META_TOK_ANCHOR };
    197 static const uint8_t pp_r27[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
    198 static const KitGramTokenKind flw_r27[] = { KIT_GRAM_META_TOK_SEMI, KIT_GRAM_META_TOK_PIPE, KIT_GRAM_META_TOK_RPAREN };
    199 static const KitGramTokenKind fst_r28[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_LPAREN, KIT_GRAM_META_TOK_CHAR_CLASS, KIT_GRAM_META_TOK_UNICODE_PROP, KIT_GRAM_META_TOK_SHORTHAND, KIT_GRAM_META_TOK_DOT, KIT_GRAM_META_TOK_ANCHOR };
    200 static const uint8_t pp_r28[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
    201 static const KitGramTokenKind flw_r28[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_SEMI, KIT_GRAM_META_TOK_PIPE, KIT_GRAM_META_TOK_LPAREN, KIT_GRAM_META_TOK_RPAREN, KIT_GRAM_META_TOK_CHAR_CLASS, KIT_GRAM_META_TOK_UNICODE_PROP, KIT_GRAM_META_TOK_SHORTHAND, KIT_GRAM_META_TOK_DOT, KIT_GRAM_META_TOK_ANCHOR };
    202 static const KitGramTokenKind fst_r29[] = { KIT_GRAM_META_TOK_QUESTION, KIT_GRAM_META_TOK_STAR, KIT_GRAM_META_TOK_PLUS, KIT_GRAM_META_TOK_REPEAT };
    203 static const uint8_t pp_r29[] = { 0, 1, 2, 3 };
    204 static const KitGramTokenKind flw_r29[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_SEMI, KIT_GRAM_META_TOK_PIPE, KIT_GRAM_META_TOK_LPAREN, KIT_GRAM_META_TOK_RPAREN, KIT_GRAM_META_TOK_CHAR_CLASS, KIT_GRAM_META_TOK_UNICODE_PROP, KIT_GRAM_META_TOK_SHORTHAND, KIT_GRAM_META_TOK_DOT, KIT_GRAM_META_TOK_ANCHOR };
    205 static const KitGramTokenKind fst_r30[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_LPAREN, KIT_GRAM_META_TOK_CHAR_CLASS, KIT_GRAM_META_TOK_UNICODE_PROP, KIT_GRAM_META_TOK_SHORTHAND, KIT_GRAM_META_TOK_DOT, KIT_GRAM_META_TOK_ANCHOR };
    206 static const uint8_t pp_r30[] = { 5, 0, 6, 1, 2, 3, 4, 7 };
    207 static const KitGramTokenKind flw_r30[] = { KIT_GRAM_META_TOK_NAME, KIT_GRAM_META_TOK_STRING, KIT_GRAM_META_TOK_SEMI, KIT_GRAM_META_TOK_PIPE, KIT_GRAM_META_TOK_LPAREN, KIT_GRAM_META_TOK_RPAREN, KIT_GRAM_META_TOK_QUESTION, KIT_GRAM_META_TOK_STAR, KIT_GRAM_META_TOK_PLUS, KIT_GRAM_META_TOK_REPEAT, KIT_GRAM_META_TOK_CHAR_CLASS, KIT_GRAM_META_TOK_UNICODE_PROP, KIT_GRAM_META_TOK_SHORTHAND, KIT_GRAM_META_TOK_DOT, KIT_GRAM_META_TOK_ANCHOR };
    208 
    209 #define N(arr) (uint16_t)(sizeof(arr) / sizeof((arr)[0]))
    210 
    211 static const KitGramRule g_rules[] = {
    212     [KIT_GRAM_META_R_grammar] = { .name = "grammar", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r0, .nprods = N(prods_r0), .predict_tok = fst_r0, .predict_prod = pp_r0, .npredict = N(fst_r0), .nullable = true, .empty_prod = 0, .first = fst_r0, .nfirst = N(fst_r0), .follow = flw_r0, .nfollow = N(flw_r0) },
    213     [KIT_GRAM_META_R_item] = { .name = "item", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r1, .nprods = N(prods_r1), .predict_tok = fst_r1, .predict_prod = pp_r1, .npredict = N(fst_r1), .nullable = false, .empty_prod = 0, .first = fst_r1, .nfirst = N(fst_r1), .follow = flw_r1, .nfollow = N(flw_r1) },
    214     [KIT_GRAM_META_R_decl] = { .name = "decl", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r2, .nprods = N(prods_r2), .predict_tok = fst_r2, .predict_prod = pp_r2, .npredict = N(fst_r2), .nullable = false, .empty_prod = 0, .first = fst_r2, .nfirst = N(fst_r2), .follow = flw_r2, .nfollow = N(flw_r2) },
    215     [KIT_GRAM_META_R_token_decl] = { .name = "token_decl", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r3, .nprods = N(prods_r3), .predict_tok = fst_r3, .predict_prod = pp_r3, .npredict = N(fst_r3), .nullable = false, .empty_prod = 0, .first = fst_r3, .nfirst = N(fst_r3), .follow = flw_r3, .nfollow = N(flw_r3) },
    216     [KIT_GRAM_META_R_rule] = { .name = "rule", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r4, .nprods = N(prods_r4), .predict_tok = fst_r4, .predict_prod = pp_r4, .npredict = N(fst_r4), .nullable = false, .empty_prod = 0, .first = fst_r4, .nfirst = N(fst_r4), .follow = flw_r4, .nfollow = N(flw_r4) },
    217     [KIT_GRAM_META_R_alt] = { .name = "alt", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r5, .nprods = N(prods_r5), .predict_tok = fst_r5, .predict_prod = pp_r5, .npredict = N(fst_r5), .nullable = true, .empty_prod = 0, .first = fst_r5, .nfirst = N(fst_r5), .follow = flw_r5, .nfollow = N(flw_r5) },
    218     [KIT_GRAM_META_R_alt_tail] = { .name = "alt_tail", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r6, .nprods = N(prods_r6), .predict_tok = fst_r6, .predict_prod = pp_r6, .npredict = N(fst_r6), .nullable = false, .empty_prod = 0, .first = fst_r6, .nfirst = N(fst_r6), .follow = flw_r6, .nfollow = N(flw_r6) },
    219     [KIT_GRAM_META_R_seq] = { .name = "seq", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r7, .nprods = N(prods_r7), .predict_tok = fst_r7, .predict_prod = pp_r7, .npredict = N(fst_r7), .nullable = true, .empty_prod = 1, .first = fst_r7, .nfirst = N(fst_r7), .follow = flw_r7, .nfollow = N(flw_r7) },
    220     [KIT_GRAM_META_R_factor] = { .name = "factor", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r8, .nprods = N(prods_r8), .predict_tok = fst_r8, .predict_prod = pp_r8, .npredict = N(fst_r8), .nullable = false, .empty_prod = 0, .first = fst_r8, .nfirst = N(fst_r8), .follow = flw_r8, .nfollow = N(flw_r8) },
    221     [KIT_GRAM_META_R_primary] = { .name = "primary", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r9, .nprods = N(prods_r9), .predict_tok = fst_r9, .predict_prod = pp_r9, .npredict = N(fst_r9), .nullable = false, .empty_prod = 0, .first = fst_r9, .nfirst = N(fst_r9), .follow = flw_r9, .nfollow = N(flw_r9) },
    222     [KIT_GRAM_META_R_quant] = { .name = "quant", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r10, .nprods = N(prods_r10), .predict_tok = fst_r10, .predict_prod = pp_r10, .npredict = N(fst_r10), .nullable = false, .empty_prod = 0, .first = fst_r10, .nfirst = N(fst_r10), .follow = flw_r10, .nfollow = N(flw_r10) },
    223     [KIT_GRAM_META_R_pratt_rule] = { .name = "pratt_rule", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r11, .nprods = N(prods_r11), .predict_tok = fst_r11, .predict_prod = pp_r11, .npredict = N(fst_r11), .nullable = false, .empty_prod = 0, .first = fst_r11, .nfirst = N(fst_r11), .follow = flw_r11, .nfollow = N(flw_r11) },
    224     [KIT_GRAM_META_R_pratt_line] = { .name = "pratt_line", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r12, .nprods = N(prods_r12), .predict_tok = fst_r12, .predict_prod = pp_r12, .npredict = N(fst_r12), .nullable = false, .empty_prod = 0, .first = fst_r12, .nfirst = N(fst_r12), .follow = flw_r12, .nfollow = N(flw_r12) },
    225     [KIT_GRAM_META_R_pratt_atom] = { .name = "pratt_atom", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r13, .nprods = N(prods_r13), .predict_tok = fst_r13, .predict_prod = pp_r13, .npredict = N(fst_r13), .nullable = false, .empty_prod = 0, .first = fst_r13, .nfirst = N(fst_r13), .follow = flw_r13, .nfollow = N(flw_r13) },
    226     [KIT_GRAM_META_R_lex_block] = { .name = "lex_block", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r14, .nprods = N(prods_r14), .predict_tok = fst_r14, .predict_prod = pp_r14, .npredict = N(fst_r14), .nullable = false, .empty_prod = 0, .first = fst_r14, .nfirst = N(fst_r14), .follow = flw_r14, .nfollow = N(flw_r14) },
    227     [KIT_GRAM_META_R_machine_block] = { .name = "machine_block", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r15, .nprods = N(prods_r15), .predict_tok = fst_r15, .predict_prod = pp_r15, .npredict = N(fst_r15), .nullable = false, .empty_prod = 0, .first = fst_r15, .nfirst = N(fst_r15), .follow = flw_r15, .nfollow = N(flw_r15) },
    228     [KIT_GRAM_META_R_lex_name] = { .name = "lex_name", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r16, .nprods = N(prods_r16), .predict_tok = fst_r16, .predict_prod = pp_r16, .npredict = N(fst_r16), .nullable = true, .empty_prod = 1, .first = fst_r16, .nfirst = N(fst_r16), .follow = flw_r16, .nfollow = N(flw_r16) },
    229     [KIT_GRAM_META_R_lex_mode] = { .name = "lex_mode", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r17, .nprods = N(prods_r17), .predict_tok = fst_r17, .predict_prod = pp_r17, .npredict = N(fst_r17), .nullable = true, .empty_prod = 1, .first = fst_r17, .nfirst = N(fst_r17), .follow = flw_r17, .nfollow = N(flw_r17) },
    230     [KIT_GRAM_META_R_lex_line] = { .name = "lex_line", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r18, .nprods = N(prods_r18), .predict_tok = fst_r18, .predict_prod = pp_r18, .npredict = N(fst_r18), .nullable = false, .empty_prod = 0, .first = fst_r18, .nfirst = N(fst_r18), .follow = flw_r18, .nfollow = N(flw_r18) },
    231     [KIT_GRAM_META_R_lex_rule] = { .name = "lex_rule", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r19, .nprods = N(prods_r19), .predict_tok = fst_r19, .predict_prod = pp_r19, .npredict = N(fst_r19), .nullable = false, .empty_prod = 0, .first = fst_r19, .nfirst = N(fst_r19), .follow = flw_r19, .nfollow = N(flw_r19) },
    232     [KIT_GRAM_META_R_skip_rule] = { .name = "skip_rule", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r20, .nprods = N(prods_r20), .predict_tok = fst_r20, .predict_prod = pp_r20, .npredict = N(fst_r20), .nullable = false, .empty_prod = 0, .first = fst_r20, .nfirst = N(fst_r20), .follow = flw_r20, .nfollow = N(flw_r20) },
    233     [KIT_GRAM_META_R_def_rule] = { .name = "def_rule", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r21, .nprods = N(prods_r21), .predict_tok = fst_r21, .predict_prod = pp_r21, .npredict = N(fst_r21), .nullable = false, .empty_prod = 0, .first = fst_r21, .nfirst = N(fst_r21), .follow = flw_r21, .nfollow = N(flw_r21) },
    234     [KIT_GRAM_META_R_keywords_block] = { .name = "keywords_block", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r22, .nprods = N(prods_r22), .predict_tok = fst_r22, .predict_prod = pp_r22, .npredict = N(fst_r22), .nullable = false, .empty_prod = 0, .first = fst_r22, .nfirst = N(fst_r22), .follow = flw_r22, .nfollow = N(flw_r22) },
    235     [KIT_GRAM_META_R_kw_entry] = { .name = "kw_entry", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r23, .nprods = N(prods_r23), .predict_tok = fst_r23, .predict_prod = pp_r23, .npredict = N(fst_r23), .nullable = false, .empty_prod = 0, .first = fst_r23, .nfirst = N(fst_r23), .follow = flw_r23, .nfollow = N(flw_r23) },
    236     [KIT_GRAM_META_R_kw_value] = { .name = "kw_value", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r24, .nprods = N(prods_r24), .predict_tok = fst_r24, .predict_prod = pp_r24, .npredict = N(fst_r24), .nullable = false, .empty_prod = 0, .first = fst_r24, .nfirst = N(fst_r24), .follow = flw_r24, .nfollow = N(flw_r24) },
    237     [KIT_GRAM_META_R_lex_alt] = { .name = "lex_alt", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r25, .nprods = N(prods_r25), .predict_tok = fst_r25, .predict_prod = pp_r25, .npredict = N(fst_r25), .nullable = false, .empty_prod = 0, .first = fst_r25, .nfirst = N(fst_r25), .follow = flw_r25, .nfollow = N(flw_r25) },
    238     [KIT_GRAM_META_R_lex_alt_tail] = { .name = "lex_alt_tail", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r26, .nprods = N(prods_r26), .predict_tok = fst_r26, .predict_prod = pp_r26, .npredict = N(fst_r26), .nullable = false, .empty_prod = 0, .first = fst_r26, .nfirst = N(fst_r26), .follow = flw_r26, .nfollow = N(flw_r26) },
    239     [KIT_GRAM_META_R_lex_seq] = { .name = "lex_seq", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r27, .nprods = N(prods_r27), .predict_tok = fst_r27, .predict_prod = pp_r27, .npredict = N(fst_r27), .nullable = false, .empty_prod = 0, .first = fst_r27, .nfirst = N(fst_r27), .follow = flw_r27, .nfollow = N(flw_r27) },
    240     [KIT_GRAM_META_R_lex_factor] = { .name = "lex_factor", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r28, .nprods = N(prods_r28), .predict_tok = fst_r28, .predict_prod = pp_r28, .npredict = N(fst_r28), .nullable = false, .empty_prod = 0, .first = fst_r28, .nfirst = N(fst_r28), .follow = flw_r28, .nfollow = N(flw_r28) },
    241     [KIT_GRAM_META_R_lex_quant] = { .name = "lex_quant", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r29, .nprods = N(prods_r29), .predict_tok = fst_r29, .predict_prod = pp_r29, .npredict = N(fst_r29), .nullable = false, .empty_prod = 0, .first = fst_r29, .nfirst = N(fst_r29), .follow = flw_r29, .nfollow = N(flw_r29) },
    242     [KIT_GRAM_META_R_lex_primary] = { .name = "lex_primary", .hidden = false, .is_pratt = false, .pratt = NULL, .prods = prods_r30, .nprods = N(prods_r30), .predict_tok = fst_r30, .predict_prod = pp_r30, .npredict = N(fst_r30), .nullable = false, .empty_prod = 0, .first = fst_r30, .nfirst = N(fst_r30), .follow = flw_r30, .nfollow = N(flw_r30) },
    243 };
    244 
    245 static const char *const g_tok_names[] = {
    246     "EOF", "%token", "NAME", "=", "STRING", ";", "|", "%empty", "(", ")", "?", "*", "%pratt", "{", "}", "%lex", "%machine", ":", "%skip", "%def", "%keywords", "+", "REPEAT", "CHAR_CLASS", "UNICODE_PROP", "SHORTHAND", ".", "ANCHOR"
    247 };
    248 
    249 const KitGramGrammar kit_gram_meta_grammar = {
    250     .name = "meta",
    251     .rules = g_rules, .nrules = KIT_GRAM_META_R__COUNT,
    252     .start = KIT_GRAM_META_R_grammar, .eof = KIT_GRAM_META_TOK_EOF,
    253     .sets = g_sets, .set_off = g_set_off, .nsets = 10,
    254     .tok_names = g_tok_names, .ntoks = KIT_GRAM_META_TOK__COUNT,
    255 };
    256 
    257 void kit_gram_meta_stack_bounds(size_t max_depth, size_t* ctl_cap, size_t* val_cap) {
    258     kit_gram_stack_bounds(&kit_gram_meta_grammar, max_depth, ctl_cap, val_cap);
    259 }
    260 size_t kit_gram_meta_generate_scratch_count(void) {
    261     return kit_gram_parser_generate_scratch_count(&kit_gram_meta_grammar);
    262 }
    263 
    264 void kit_gram_meta_parser_init(KitGramParser *mem, const KitGramConfig *cfg) {
    265     kit_gram_parser_init(mem, &kit_gram_meta_grammar, cfg);
    266 }
    267 
    268 enum {
    269     A_LEX_0_0,
    270     A_LEX_0_1,
    271     A_LEX_0_2,
    272     A_LEX_0_3,
    273     A_LEX_0_4,
    274     A_LEX_0_5,
    275     A_LEX_0_6,
    276     A_LEX_0_7,
    277     A_LEX_0_8,
    278     A_LEX_0_9,
    279     A_LEX_0_10,
    280     A_LEX_0_11,
    281     A_LEX_0_12,
    282     A_LEX_0_13,
    283     A_LEX_0_14,
    284     A_LEX_0_15,
    285     A_LEX_0_16,
    286     A_LEX_0_17,
    287     A_LEX_0_18,
    288     A_LEX_0_19,
    289     A_LEX_0_20,
    290     A_LEX_0_21,
    291     A_LEX_0_22,
    292     A_LEX_0_23,
    293     A_LEX_0_24,
    294     A_LEX_0_25,
    295     A_LEX_0_26,
    296     A_LEX_0_27,
    297     A_LEX_0_28,
    298     A_LEX_0_COUNT
    299 };
    300 
    301 static const KitGramLexAccept lex_0_accepts[] = {
    302     [A_LEX_0_0] = { .tok = KIT_GRAM_META_TOK_TOKEN_DECL },
    303     [A_LEX_0_1] = { .tok = KIT_GRAM_META_TOK_EMPTY_DECL },
    304     [A_LEX_0_2] = { .tok = KIT_GRAM_META_TOK_PRATT_DECL },
    305     [A_LEX_0_3] = { .tok = KIT_GRAM_META_TOK_LEX_DECL },
    306     [A_LEX_0_4] = { .tok = KIT_GRAM_META_TOK_SKIP_DECL },
    307     [A_LEX_0_5] = { .tok = KIT_GRAM_META_TOK_DEF_DECL },
    308     [A_LEX_0_6] = { .tok = KIT_GRAM_META_TOK_KEYWORDS_DECL },
    309     [A_LEX_0_7] = { .tok = KIT_GRAM_META_TOK_COLON },
    310     [A_LEX_0_8] = { .tok = KIT_GRAM_META_TOK_MACHINE_DECL },
    311     [A_LEX_0_9] = { .skip = true },
    312     [A_LEX_0_10] = { .skip = true },
    313     [A_LEX_0_11] = { .tok = KIT_GRAM_META_TOK_NAME },
    314     [A_LEX_0_12] = { .tok = KIT_GRAM_META_TOK_STRING },
    315     [A_LEX_0_13] = { .tok = KIT_GRAM_META_TOK_UNICODE_PROP },
    316     [A_LEX_0_14] = { .tok = KIT_GRAM_META_TOK_CHAR_CLASS },
    317     [A_LEX_0_15] = { .tok = KIT_GRAM_META_TOK_ANCHOR },
    318     [A_LEX_0_16] = { .tok = KIT_GRAM_META_TOK_SHORTHAND },
    319     [A_LEX_0_17] = { .tok = KIT_GRAM_META_TOK_REPEAT },
    320     [A_LEX_0_18] = { .tok = KIT_GRAM_META_TOK_EQ },
    321     [A_LEX_0_19] = { .tok = KIT_GRAM_META_TOK_SEMI },
    322     [A_LEX_0_20] = { .tok = KIT_GRAM_META_TOK_PIPE },
    323     [A_LEX_0_21] = { .tok = KIT_GRAM_META_TOK_LPAREN },
    324     [A_LEX_0_22] = { .tok = KIT_GRAM_META_TOK_RPAREN },
    325     [A_LEX_0_23] = { .tok = KIT_GRAM_META_TOK_QUESTION },
    326     [A_LEX_0_24] = { .tok = KIT_GRAM_META_TOK_STAR },
    327     [A_LEX_0_25] = { .tok = KIT_GRAM_META_TOK_LBRACE },
    328     [A_LEX_0_26] = { .tok = KIT_GRAM_META_TOK_RBRACE },
    329     [A_LEX_0_27] = { .tok = KIT_GRAM_META_TOK_PLUS },
    330     [A_LEX_0_28] = { .tok = KIT_GRAM_META_TOK_DOT },
    331 };
    332 
    333 #define LXA KIT_GRAM_LEX_ACCEPT_NONE
    334 #define LXD KIT_GRAM_LEX_DEAD
    335 
    336 static const uint16_t lex_0_accept[] = {
    337     LXA, A_LEX_0_9, LXA, A_LEX_0_15, LXA, A_LEX_0_21, A_LEX_0_22, A_LEX_0_24, A_LEX_0_27, A_LEX_0_28, LXA, A_LEX_0_7,
    338     A_LEX_0_19, A_LEX_0_18, A_LEX_0_23, A_LEX_0_11, LXA, LXA, A_LEX_0_25, A_LEX_0_20, A_LEX_0_26, A_LEX_0_12, LXA, LXA,
    339     LXA, LXA, LXA, LXA, LXA, LXA, LXA, A_LEX_0_10, LXA, LXA, A_LEX_0_16, LXA,
    340     LXA, LXA, LXA, LXA, LXA, LXA, LXA, LXA, LXA, A_LEX_0_14, LXA, A_LEX_0_17,
    341     A_LEX_0_5, LXA, LXA, A_LEX_0_3, LXA, LXA, LXA, LXA, LXA, LXA, LXA, LXA,
    342     LXA, A_LEX_0_4, LXA, A_LEX_0_13, A_LEX_0_1, LXA, LXA, A_LEX_0_2, A_LEX_0_0, LXA, LXA, LXA,
    343     A_LEX_0_8, A_LEX_0_6,
    344 };
    345 
    346 static const uint16_t lex_0_trans[] = {
    347     LXD, 1, 1, 2, 3, 4, 5, 6, 7, 8, LXD, 9,
    348     10, LXD, 11, 12, 13, 14, 15, 15, 15, 15, 16, 17,
    349     LXD, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
    350     15, 15, 15, 15, 15, 15, 15, 15, 18, 19, 20, LXD,
    351     1, 1, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    352     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    353     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    354     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 2, 2,
    355     LXD, 21, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    356     2, 2, 2, 2, 2, 2, 2, 2, 2, 22, 2, 2,
    357     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    358     2, 2, 2, 2, 2, 2, 2, 2, 2, LXD, LXD, LXD,
    359     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    360     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    361     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    362     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    363     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    364     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 23,
    365     24, LXD, LXD, LXD, 25, 26, 27, LXD, LXD, 28, LXD, 29,
    366     30, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    367     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    368     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    369     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    370     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    371     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    372     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    373     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    374     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    375     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    376     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    377     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    378     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    379     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    380     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    381     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    382     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    383     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    384     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    385     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    386     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    387     LXD, LXD, 31, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    388     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    389     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    390     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    391     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    392     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    393     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    394     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    395     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    396     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    397     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    398     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    399     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    400     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    401     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    402     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    403     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    404     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    405     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    406     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 15, LXD,
    407     LXD, LXD, LXD, 15, 15, 15, 15, LXD, LXD, LXD, 15, 15,
    408     15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
    409     15, 15, 15, 15, 15, LXD, LXD, LXD, 32, 32, LXD, 32,
    410     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
    411     32, 32, 32, 32, 32, 32, 32, 33, LXD, 32, 32, 32,
    412     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
    413     32, 32, 32, 32, 32, 32, 32, LXD, LXD, LXD, LXD, LXD,
    414     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    415     LXD, 3, LXD, 34, 35, LXD, LXD, LXD, LXD, LXD, 34, LXD,
    416     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 35, LXD, 34, LXD,
    417     34, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    418     LXD, LXD, LXD, LXD, 36, LXD, LXD, 36, LXD, LXD, LXD, LXD,
    419     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    420     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    421     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    422     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    423     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    424     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    425     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    426     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    427     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    428     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    429     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    430     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    431     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    432     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    433     LXD, LXD, 2, 2, LXD, 2, 2, 2, 2, 2, 2, 2,
    434     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    435     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    436     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    437     2, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    438     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    439     LXD, LXD, LXD, LXD, LXD, 37, LXD, LXD, LXD, LXD, LXD, LXD,
    440     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    441     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    442     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    443     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 38, LXD,
    444     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    445     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    446     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    447     LXD, LXD, LXD, 39, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    448     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    449     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    450     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    451     LXD, LXD, 40, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    452     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    453     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    454     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 41, LXD,
    455     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    456     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    457     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    458     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    459     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 42, LXD,
    460     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    461     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    462     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    463     LXD, LXD, LXD, 43, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    464     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    465     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    466     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    467     LXD, LXD, LXD, LXD, LXD, LXD, 44, LXD, LXD, LXD, LXD, LXD,
    468     LXD, LXD, LXD, LXD, LXD, 31, 31, LXD, 31, 31, 31, 31,
    469     31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
    470     31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
    471     31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
    472     31, 31, 31, 31, 32, 32, LXD, 32, 32, 32, 32, 32,
    473     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
    474     32, 32, 32, 33, 45, 32, 32, 32, 32, 32, 32, 32,
    475     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
    476     32, 32, 32, 32, 32, LXD, 32, 32, 32, 32, 32, 32,
    477     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
    478     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
    479     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
    480     32, 32, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    481     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    482     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    483     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    484     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    485     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    486     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    487     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 46, LXD, LXD,
    488     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 36, LXD,
    489     LXD, 36, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    490     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    491     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 47, LXD,
    492     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    493     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    494     LXD, LXD, LXD, LXD, 48, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    495     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    496     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    497     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    498     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 49,
    499     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    500     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    501     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    502     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    503     LXD, LXD, LXD, LXD, 50, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    504     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    505     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    506     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    507     LXD, LXD, 51, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    508     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    509     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 52, LXD, LXD,
    510     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    511     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    512     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    513     LXD, LXD, LXD, LXD, LXD, LXD, LXD, 53, LXD, LXD, LXD, LXD,
    514     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    515     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    516     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    517     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    518     54, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    519     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    520     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    521     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    522     55, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    523     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    524     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    525     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    526     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    527     LXD, LXD, 56, 56, LXD, 56, 56, 56, 56, 56, 56, 56,
    528     56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
    529     56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
    530     56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
    531     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    532     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    533     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    534     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    535     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    536     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    537     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    538     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    539     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    540     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    541     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    542     LXD, LXD, LXD, 57, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    543     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    544     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    545     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    546     LXD, LXD, LXD, 58, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    547     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    548     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    549     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    550     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    551     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    552     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    553     LXD, LXD, 59, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    554     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    555     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    556     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    557     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 60,
    558     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    559     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    560     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    561     LXD, LXD, LXD, LXD, LXD, LXD, LXD, 61, LXD, LXD, LXD, LXD,
    562     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    563     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    564     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 62, LXD, LXD,
    565     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    566     LXD, LXD, LXD, LXD, 56, 56, LXD, 56, 56, 56, 56, 56,
    567     56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
    568     56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
    569     56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
    570     56, 56, 63, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    571     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    572     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    573     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 64, LXD,
    574     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    575     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    576     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    577     LXD, LXD, 65, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    578     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    579     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    580     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 66, LXD, LXD, LXD,
    581     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    582     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    583     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    584     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    585     LXD, LXD, LXD, LXD, 67, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    586     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    587     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    588     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    589     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    590     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    591     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    592     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 68, LXD, LXD,
    593     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    594     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    595     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    596     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    597     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    598     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    599     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    600     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    601     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    602     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    603     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    604     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, 69, LXD, LXD,
    605     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    606     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    607     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    608     LXD, LXD, LXD, LXD, LXD, 70, LXD, LXD, LXD, LXD, LXD, LXD,
    609     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    610     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    611     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    612     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    613     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    614     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    615     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    616     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    617     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    618     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    619     LXD, LXD, LXD, LXD, LXD, LXD, 71, LXD, LXD, LXD, LXD, LXD,
    620     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    621     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    622     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    623     LXD, LXD, LXD, LXD, LXD, LXD, 72, LXD, LXD, LXD, LXD, LXD,
    624     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    625     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    626     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    627     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    628     LXD, LXD, LXD, LXD, 73, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    629     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    630     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    631     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    632     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    633     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    634     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    635     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    636     LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD, LXD,
    637 };
    638 
    639 #undef LXA
    640 #undef LXD
    641 
    642 const KitGramLexGrammar kit_gram_meta_lex_grammar = {
    643     .name = "meta",
    644     .input = KIT_GRAM_LEX_INPUT_BYTES,
    645     .class_of = {
    646         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 0, 0,
    647         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    648         1, 0, 3, 0, 4, 5, 0, 0, 6, 7, 8, 9, 10, 0, 11, 12,
    649         13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 15, 0, 16, 0, 17,
    650         0, 18, 19, 19, 20, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
    651         21, 19, 19, 20, 19, 19, 19, 20, 19, 19, 19, 22, 23, 24, 4, 19,
    652         0, 25, 19, 26, 27, 28, 29, 19, 30, 31, 19, 32, 33, 34, 35, 36,
    653         37, 19, 38, 39, 40, 19, 19, 41, 42, 43, 18, 44, 45, 46, 0, 0,
    654         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    655         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    656         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    657         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    658         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    659         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    660         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    661         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    662     },
    663     .nclasses = 47,
    664     .class_stride = 47,
    665     .trans = lex_0_trans,
    666     .nstates = 74,
    667     .accept = lex_0_accept,
    668     .accepts = lex_0_accepts,
    669     .naccepts = A_LEX_0_COUNT,
    670 };
    671 
    672 void kit_gram_meta_matcher_init(KitGramMatcher *m) {
    673     kit_gram_matcher_bind(m, &kit_gram_meta_lex_grammar);
    674 }
    675 
    676 void kit_gram_meta_lexer_init(KitGramLexer *mem, KitGramLexInput *in, const KitGramLexConfig *cfg) {
    677     kit_gram_lexer_init(mem, &kit_gram_meta_lex_grammar, in, cfg);
    678 }