From 9ae58709525f2c7a9baac3cb5a6006765e59a670 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
 <41898282+github-actions[bot]@users.noreply.github.com>
Date: Sat, 13 Apr 2024 09:33:33 +0000
Subject: [PATCH] build: update & regenerate parser

---
 package-lock.json        |     7 +-
 src/parser.c             | 11300 +++++++++++++------------------------
 src/tree_sitter/parser.h |    51 +-
 3 files changed, 4011 insertions(+), 7347 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 43a6de8..b7dcd7f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -355,7 +355,6 @@
       "resolved": "git+ssh://git@github.com/tree-sitter/tree-sitter-c.git#1aafaff4d26dac5a36dd3495be33e1c20161d761",
       "dev": true,
       "hasInstallScript": true,
-      "license": "MIT",
       "dependencies": {
         "node-addon-api": "^8.0.0",
         "node-gyp-build": "^4.8.0"
@@ -379,9 +378,9 @@
       }
     },
     "node_modules/tree-sitter-cli": {
-      "version": "0.22.2",
-      "resolved": "https://registry.npmjs.org/tree-sitter-cli/-/tree-sitter-cli-0.22.2.tgz",
-      "integrity": "sha512-ecqccEp27XMFXgjLMEEU71vK9JCWAC7fqSTTxcs5P1tnEnaaf4GkHz/wfo4lJ9l3rfxcTDPxN84tHAoitIQqdA==",
+      "version": "0.22.4",
+      "resolved": "https://registry.npmjs.org/tree-sitter-cli/-/tree-sitter-cli-0.22.4.tgz",
+      "integrity": "sha512-Zli7yeD+ocVWm+au5YLJKLyxzvUirenomOgwapNZU8bpYt/CZMpEeya9eK/tEQAd7NDOQSvAnvhJXbPbwUdgMQ==",
       "dev": true,
       "hasInstallScript": true,
       "bin": {
diff --git a/src/parser.c b/src/parser.c
index ca57d03..9750202 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -5972,3699 +5972,260 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
   [2412] = 2412,
 };
 
-static inline bool sym_number_literal_character_set_1(int32_t c) {
-  return (c < 'b'
-    ? (c < 'L'
-      ? (c < 'D'
-        ? c == 'B'
-        : c <= 'F')
-      : (c <= 'L' || (c < 'W'
-        ? c == 'U'
-        : c <= 'W')))
-    : (c <= 'b' || (c < 'u'
-      ? (c < 'l'
-        ? (c >= 'd' && c <= 'f')
-        : c <= 'l')
-      : (c <= 'u' || c == 'w'))));
-}
+static TSCharacterRange sym_number_literal_character_set_1[] = {
+  {'\'', '\''}, {'.', '.'}, {'0', '9'}, {'B', 'B'}, {'D', 'F'}, {'L', 'L'}, {'P', 'P'}, {'U', 'U'},
+  {'W', 'X'}, {'b', 'b'}, {'d', 'f'}, {'l', 'l'}, {'p', 'p'}, {'u', 'u'}, {'w', 'x'},
+};
 
-static inline bool sym_number_literal_character_set_2(int32_t c) {
-  return (c < 'b'
-    ? (c < 'L'
-      ? (c < 'D'
-        ? c == 'B'
-        : (c <= 'D' || c == 'F'))
-      : (c <= 'L' || (c < 'W'
-        ? c == 'U'
-        : c <= 'W')))
-    : (c <= 'b' || (c < 'l'
-      ? (c < 'f'
-        ? c == 'd'
-        : c <= 'f')
-      : (c <= 'l' || (c < 'w'
-        ? c == 'u'
-        : c <= 'w')))));
-}
+static TSCharacterRange sym_number_literal_character_set_2[] = {
+  {'\'', '\''}, {'.', '.'}, {'0', '9'}, {'B', 'B'}, {'D', 'F'}, {'L', 'L'}, {'P', 'P'}, {'U', 'U'},
+  {'W', 'W'}, {'b', 'b'}, {'d', 'f'}, {'l', 'l'}, {'p', 'p'}, {'u', 'u'}, {'w', 'w'},
+};
 
-static inline bool sym_identifier_character_set_1(int32_t c) {
-  return (c < 43488
-    ? (c < 4159
-      ? (c < 2654
-        ? (c < 1808
-          ? (c < 895
-            ? (c < 192
-              ? (c < 'a'
-                ? (c < 'M'
-                  ? (c < 'A'
-                    ? c == '$'
-                    : c <= 'K')
-                  : (c <= 'T' || (c < '_'
-                    ? (c >= 'V' && c <= 'Z')
-                    : c <= '_')))
-                : (c <= 't' || (c < 181
-                  ? (c < 170
-                    ? (c >= 'v' && c <= 'z')
-                    : c <= 170)
-                  : (c <= 181 || c == 186))))
-              : (c <= 214 || (c < 748
-                ? (c < 710
-                  ? (c < 248
-                    ? (c >= 216 && c <= 246)
-                    : c <= 705)
-                  : (c <= 721 || (c >= 736 && c <= 740)))
-                : (c <= 748 || (c < 886
-                  ? (c < 880
-                    ? c == 750
-                    : c <= 884)
-                  : (c <= 887 || (c >= 891 && c <= 893)))))))
-            : (c <= 895 || (c < 1488
-              ? (c < 1015
-                ? (c < 908
-                  ? (c < 904
-                    ? c == 902
-                    : c <= 906)
-                  : (c <= 908 || (c < 931
-                    ? (c >= 910 && c <= 929)
-                    : c <= 1013)))
-                : (c <= 1153 || (c < 1369
-                  ? (c < 1329
-                    ? (c >= 1162 && c <= 1327)
-                    : c <= 1366)
-                  : (c <= 1369 || (c >= 1376 && c <= 1416)))))
-              : (c <= 1514 || (c < 1749
-                ? (c < 1646
-                  ? (c < 1568
-                    ? (c >= 1519 && c <= 1522)
-                    : c <= 1610)
-                  : (c <= 1647 || (c >= 1649 && c <= 1747)))
-                : (c <= 1749 || (c < 1786
-                  ? (c < 1774
-                    ? (c >= 1765 && c <= 1766)
-                    : c <= 1775)
-                  : (c <= 1788 || c == 1791))))))))
-          : (c <= 1808 || (c < 2437
-            ? (c < 2112
-              ? (c < 2042
-                ? (c < 1969
-                  ? (c < 1869
-                    ? (c >= 1810 && c <= 1839)
-                    : c <= 1957)
-                  : (c <= 1969 || (c < 2036
-                    ? (c >= 1994 && c <= 2026)
-                    : c <= 2037)))
-                : (c <= 2042 || (c < 2084
-                  ? (c < 2074
-                    ? (c >= 2048 && c <= 2069)
-                    : c <= 2074)
-                  : (c <= 2084 || c == 2088))))
-              : (c <= 2136 || (c < 2308
-                ? (c < 2185
-                  ? (c < 2160
-                    ? (c >= 2144 && c <= 2154)
-                    : c <= 2183)
-                  : (c <= 2190 || (c >= 2208 && c <= 2249)))
-                : (c <= 2361 || (c < 2392
-                  ? (c < 2384
-                    ? c == 2365
-                    : c <= 2384)
-                  : (c <= 2401 || (c >= 2417 && c <= 2432)))))))
-            : (c <= 2444 || (c < 2544
-              ? (c < 2486
-                ? (c < 2474
-                  ? (c < 2451
-                    ? (c >= 2447 && c <= 2448)
-                    : c <= 2472)
-                  : (c <= 2480 || c == 2482))
-                : (c <= 2489 || (c < 2524
-                  ? (c < 2510
-                    ? c == 2493
-                    : c <= 2510)
-                  : (c <= 2525 || (c >= 2527 && c <= 2529)))))
-              : (c <= 2545 || (c < 2602
-                ? (c < 2575
-                  ? (c < 2565
-                    ? c == 2556
-                    : c <= 2570)
-                  : (c <= 2576 || (c >= 2579 && c <= 2600)))
-                : (c <= 2608 || (c < 2616
-                  ? (c < 2613
-                    ? (c >= 2610 && c <= 2611)
-                    : c <= 2614)
-                  : (c <= 2617 || (c >= 2649 && c <= 2652)))))))))))
-        : (c <= 2654 || (c < 3205
-          ? (c < 2929
-            ? (c < 2809
-              ? (c < 2738
-                ? (c < 2703
-                  ? (c < 2693
-                    ? (c >= 2674 && c <= 2676)
-                    : c <= 2701)
-                  : (c <= 2705 || (c < 2730
-                    ? (c >= 2707 && c <= 2728)
-                    : c <= 2736)))
-                : (c <= 2739 || (c < 2768
-                  ? (c < 2749
-                    ? (c >= 2741 && c <= 2745)
-                    : c <= 2749)
-                  : (c <= 2768 || (c >= 2784 && c <= 2785)))))
-              : (c <= 2809 || (c < 2866
-                ? (c < 2835
-                  ? (c < 2831
-                    ? (c >= 2821 && c <= 2828)
-                    : c <= 2832)
-                  : (c <= 2856 || (c >= 2858 && c <= 2864)))
-                : (c <= 2867 || (c < 2908
-                  ? (c < 2877
-                    ? (c >= 2869 && c <= 2873)
-                    : c <= 2877)
-                  : (c <= 2909 || (c >= 2911 && c <= 2913)))))))
-            : (c <= 2929 || (c < 3024
-              ? (c < 2972
-                ? (c < 2958
-                  ? (c < 2949
-                    ? c == 2947
-                    : c <= 2954)
-                  : (c <= 2960 || (c < 2969
-                    ? (c >= 2962 && c <= 2965)
-                    : c <= 2970)))
-                : (c <= 2972 || (c < 2984
-                  ? (c < 2979
-                    ? (c >= 2974 && c <= 2975)
-                    : c <= 2980)
-                  : (c <= 2986 || (c >= 2990 && c <= 3001)))))
-              : (c <= 3024 || (c < 3133
-                ? (c < 3090
-                  ? (c < 3086
-                    ? (c >= 3077 && c <= 3084)
-                    : c <= 3088)
-                  : (c <= 3112 || (c >= 3114 && c <= 3129)))
-                : (c <= 3133 || (c < 3168
-                  ? (c < 3165
-                    ? (c >= 3160 && c <= 3162)
-                    : c <= 3165)
-                  : (c <= 3169 || c == 3200))))))))
-          : (c <= 3212 || (c < 3520
-            ? (c < 3346
-              ? (c < 3293
-                ? (c < 3242
-                  ? (c < 3218
-                    ? (c >= 3214 && c <= 3216)
-                    : c <= 3240)
-                  : (c <= 3251 || (c < 3261
-                    ? (c >= 3253 && c <= 3257)
-                    : c <= 3261)))
-                : (c <= 3294 || (c < 3332
-                  ? (c < 3313
-                    ? (c >= 3296 && c <= 3297)
-                    : c <= 3314)
-                  : (c <= 3340 || (c >= 3342 && c <= 3344)))))
-              : (c <= 3386 || (c < 3450
-                ? (c < 3412
-                  ? (c < 3406
-                    ? c == 3389
-                    : c <= 3406)
-                  : (c <= 3414 || (c >= 3423 && c <= 3425)))
-                : (c <= 3455 || (c < 3507
-                  ? (c < 3482
-                    ? (c >= 3461 && c <= 3478)
-                    : c <= 3505)
-                  : (c <= 3515 || c == 3517))))))
-            : (c <= 3526 || (c < 3762
-              ? (c < 3716
-                ? (c < 3648
-                  ? (c < 3634
-                    ? (c >= 3585 && c <= 3632)
-                    : c <= 3634)
-                  : (c <= 3654 || (c >= 3713 && c <= 3714)))
-                : (c <= 3716 || (c < 3749
-                  ? (c < 3724
-                    ? (c >= 3718 && c <= 3722)
-                    : c <= 3747)
-                  : (c <= 3749 || (c >= 3751 && c <= 3760)))))
-              : (c <= 3762 || (c < 3840
-                ? (c < 3782
-                  ? (c < 3776
-                    ? c == 3773
-                    : c <= 3780)
-                  : (c <= 3782 || (c >= 3804 && c <= 3807)))
-                : (c <= 3840 || (c < 3976
-                  ? (c < 3913
-                    ? (c >= 3904 && c <= 3911)
-                    : c <= 3948)
-                  : (c <= 3980 || (c >= 4096 && c <= 4138)))))))))))))
-      : (c <= 4159 || (c < 8126
-        ? (c < 6103
-          ? (c < 4792
-            ? (c < 4304
-              ? (c < 4213
-                ? (c < 4193
-                  ? (c < 4186
-                    ? (c >= 4176 && c <= 4181)
-                    : c <= 4189)
-                  : (c <= 4193 || (c < 4206
-                    ? (c >= 4197 && c <= 4198)
-                    : c <= 4208)))
-                : (c <= 4225 || (c < 4295
-                  ? (c < 4256
-                    ? c == 4238
-                    : c <= 4293)
-                  : (c <= 4295 || c == 4301))))
-              : (c <= 4346 || (c < 4698
-                ? (c < 4688
-                  ? (c < 4682
-                    ? (c >= 4348 && c <= 4680)
-                    : c <= 4685)
-                  : (c <= 4694 || c == 4696))
-                : (c <= 4701 || (c < 4752
-                  ? (c < 4746
-                    ? (c >= 4704 && c <= 4744)
-                    : c <= 4749)
-                  : (c <= 4784 || (c >= 4786 && c <= 4789)))))))
-            : (c <= 4798 || (c < 5743
-              ? (c < 4888
-                ? (c < 4808
-                  ? (c < 4802
-                    ? c == 4800
-                    : c <= 4805)
-                  : (c <= 4822 || (c < 4882
-                    ? (c >= 4824 && c <= 4880)
-                    : c <= 4885)))
-                : (c <= 4954 || (c < 5112
-                  ? (c < 5024
-                    ? (c >= 4992 && c <= 5007)
-                    : c <= 5109)
-                  : (c <= 5117 || (c >= 5121 && c <= 5740)))))
-              : (c <= 5759 || (c < 5919
-                ? (c < 5870
-                  ? (c < 5792
-                    ? (c >= 5761 && c <= 5786)
-                    : c <= 5866)
-                  : (c <= 5880 || (c >= 5888 && c <= 5905)))
-                : (c <= 5937 || (c < 5998
-                  ? (c < 5984
-                    ? (c >= 5952 && c <= 5969)
-                    : c <= 5996)
-                  : (c <= 6000 || (c >= 6016 && c <= 6067)))))))))
-          : (c <= 6103 || (c < 7258
-            ? (c < 6656
-              ? (c < 6400
-                ? (c < 6272
-                  ? (c < 6176
-                    ? c == 6108
-                    : c <= 6264)
-                  : (c <= 6312 || (c < 6320
-                    ? c == 6314
-                    : c <= 6389)))
-                : (c <= 6430 || (c < 6528
-                  ? (c < 6512
-                    ? (c >= 6480 && c <= 6509)
-                    : c <= 6516)
-                  : (c <= 6571 || (c >= 6576 && c <= 6601)))))
-              : (c <= 6678 || (c < 7043
-                ? (c < 6917
-                  ? (c < 6823
-                    ? (c >= 6688 && c <= 6740)
-                    : c <= 6823)
-                  : (c <= 6963 || (c >= 6981 && c <= 6988)))
-                : (c <= 7072 || (c < 7168
-                  ? (c < 7098
-                    ? (c >= 7086 && c <= 7087)
-                    : c <= 7141)
-                  : (c <= 7203 || (c >= 7245 && c <= 7247)))))))
-            : (c <= 7293 || (c < 7960
-              ? (c < 7406
-                ? (c < 7357
-                  ? (c < 7312
-                    ? (c >= 7296 && c <= 7304)
-                    : c <= 7354)
-                  : (c <= 7359 || (c >= 7401 && c <= 7404)))
-                : (c <= 7411 || (c < 7424
-                  ? (c < 7418
-                    ? (c >= 7413 && c <= 7414)
-                    : c <= 7418)
-                  : (c <= 7615 || (c >= 7680 && c <= 7957)))))
-              : (c <= 7965 || (c < 8027
-                ? (c < 8016
-                  ? (c < 8008
-                    ? (c >= 7968 && c <= 8005)
-                    : c <= 8013)
-                  : (c <= 8023 || c == 8025))
-                : (c <= 8027 || (c < 8064
-                  ? (c < 8031
-                    ? c == 8029
-                    : c <= 8061)
-                  : (c <= 8116 || (c >= 8118 && c <= 8124)))))))))))
-        : (c <= 8126 || (c < 12293
-          ? (c < 8517
-            ? (c < 8450
-              ? (c < 8178
-                ? (c < 8144
-                  ? (c < 8134
-                    ? (c >= 8130 && c <= 8132)
-                    : c <= 8140)
-                  : (c <= 8147 || (c < 8160
-                    ? (c >= 8150 && c <= 8155)
-                    : c <= 8172)))
-                : (c <= 8180 || (c < 8319
-                  ? (c < 8305
-                    ? (c >= 8182 && c <= 8188)
-                    : c <= 8305)
-                  : (c <= 8319 || (c >= 8336 && c <= 8348)))))
-              : (c <= 8450 || (c < 8484
-                ? (c < 8469
-                  ? (c < 8458
-                    ? c == 8455
-                    : c <= 8467)
-                  : (c <= 8469 || (c >= 8472 && c <= 8477)))
-                : (c <= 8484 || (c < 8490
-                  ? (c < 8488
-                    ? c == 8486
-                    : c <= 8488)
-                  : (c <= 8505 || (c >= 8508 && c <= 8511)))))))
-            : (c <= 8521 || (c < 11631
-              ? (c < 11506
-                ? (c < 11264
-                  ? (c < 8544
-                    ? c == 8526
-                    : c <= 8584)
-                  : (c <= 11492 || (c >= 11499 && c <= 11502)))
-                : (c <= 11507 || (c < 11565
-                  ? (c < 11559
-                    ? (c >= 11520 && c <= 11557)
-                    : c <= 11559)
-                  : (c <= 11565 || (c >= 11568 && c <= 11623)))))
-              : (c <= 11631 || (c < 11704
-                ? (c < 11688
-                  ? (c < 11680
-                    ? (c >= 11648 && c <= 11670)
-                    : c <= 11686)
-                  : (c <= 11694 || (c >= 11696 && c <= 11702)))
-                : (c <= 11710 || (c < 11728
-                  ? (c < 11720
-                    ? (c >= 11712 && c <= 11718)
-                    : c <= 11726)
-                  : (c <= 11734 || (c >= 11736 && c <= 11742)))))))))
-          : (c <= 12295 || (c < 42775
-            ? (c < 12784
-              ? (c < 12449
-                ? (c < 12344
-                  ? (c < 12337
-                    ? (c >= 12321 && c <= 12329)
-                    : c <= 12341)
-                  : (c <= 12348 || (c < 12445
-                    ? (c >= 12353 && c <= 12438)
-                    : c <= 12447)))
-                : (c <= 12538 || (c < 12593
-                  ? (c < 12549
-                    ? (c >= 12540 && c <= 12543)
-                    : c <= 12591)
-                  : (c <= 12686 || (c >= 12704 && c <= 12735)))))
-              : (c <= 12799 || (c < 42512
-                ? (c < 42192
-                  ? (c < 19968
-                    ? (c >= 13312 && c <= 19903)
-                    : c <= 42124)
-                  : (c <= 42237 || (c >= 42240 && c <= 42508)))
-                : (c <= 42527 || (c < 42623
-                  ? (c < 42560
-                    ? (c >= 42538 && c <= 42539)
-                    : c <= 42606)
-                  : (c <= 42653 || (c >= 42656 && c <= 42735)))))))
-            : (c <= 42783 || (c < 43072
-              ? (c < 42965
-                ? (c < 42960
-                  ? (c < 42891
-                    ? (c >= 42786 && c <= 42888)
-                    : c <= 42954)
-                  : (c <= 42961 || c == 42963))
-                : (c <= 42969 || (c < 43015
-                  ? (c < 43011
-                    ? (c >= 42994 && c <= 43009)
-                    : c <= 43013)
-                  : (c <= 43018 || (c >= 43020 && c <= 43042)))))
-              : (c <= 43123 || (c < 43274
-                ? (c < 43259
-                  ? (c < 43250
-                    ? (c >= 43138 && c <= 43187)
-                    : c <= 43255)
-                  : (c <= 43259 || (c >= 43261 && c <= 43262)))
-                : (c <= 43301 || (c < 43396
-                  ? (c < 43360
-                    ? (c >= 43312 && c <= 43334)
-                    : c <= 43388)
-                  : (c <= 43442 || c == 43471))))))))))))))
-    : (c <= 43492 || (c < 70656
-      ? (c < 66940
-        ? (c < 64848
-          ? (c < 43816
-            ? (c < 43705
-              ? (c < 43616
-                ? (c < 43520
-                  ? (c < 43514
-                    ? (c >= 43494 && c <= 43503)
-                    : c <= 43518)
-                  : (c <= 43560 || (c < 43588
-                    ? (c >= 43584 && c <= 43586)
-                    : c <= 43595)))
-                : (c <= 43638 || (c < 43697
-                  ? (c < 43646
-                    ? c == 43642
-                    : c <= 43695)
-                  : (c <= 43697 || (c >= 43701 && c <= 43702)))))
-              : (c <= 43709 || (c < 43762
-                ? (c < 43739
-                  ? (c < 43714
-                    ? c == 43712
-                    : c <= 43714)
-                  : (c <= 43741 || (c >= 43744 && c <= 43754)))
-                : (c <= 43764 || (c < 43793
-                  ? (c < 43785
-                    ? (c >= 43777 && c <= 43782)
-                    : c <= 43790)
-                  : (c <= 43798 || (c >= 43808 && c <= 43814)))))))
-            : (c <= 43822 || (c < 64285
-              ? (c < 55243
-                ? (c < 43888
-                  ? (c < 43868
-                    ? (c >= 43824 && c <= 43866)
-                    : c <= 43881)
-                  : (c <= 44002 || (c < 55216
-                    ? (c >= 44032 && c <= 55203)
-                    : c <= 55238)))
-                : (c <= 55291 || (c < 64256
-                  ? (c < 64112
-                    ? (c >= 63744 && c <= 64109)
-                    : c <= 64217)
-                  : (c <= 64262 || (c >= 64275 && c <= 64279)))))
-              : (c <= 64285 || (c < 64320
-                ? (c < 64312
-                  ? (c < 64298
-                    ? (c >= 64287 && c <= 64296)
-                    : c <= 64310)
-                  : (c <= 64316 || c == 64318))
-                : (c <= 64321 || (c < 64467
-                  ? (c < 64326
-                    ? (c >= 64323 && c <= 64324)
-                    : c <= 64433)
-                  : (c <= 64605 || (c >= 64612 && c <= 64829)))))))))
-          : (c <= 64911 || (c < 65596
-            ? (c < 65345
-              ? (c < 65145
-                ? (c < 65137
-                  ? (c < 65008
-                    ? (c >= 64914 && c <= 64967)
-                    : c <= 65017)
-                  : (c <= 65137 || (c < 65143
-                    ? c == 65139
-                    : c <= 65143)))
-                : (c <= 65145 || (c < 65151
-                  ? (c < 65149
-                    ? c == 65147
-                    : c <= 65149)
-                  : (c <= 65276 || (c >= 65313 && c <= 65338)))))
-              : (c <= 65370 || (c < 65490
-                ? (c < 65474
-                  ? (c < 65440
-                    ? (c >= 65382 && c <= 65437)
-                    : c <= 65470)
-                  : (c <= 65479 || (c >= 65482 && c <= 65487)))
-                : (c <= 65495 || (c < 65549
-                  ? (c < 65536
-                    ? (c >= 65498 && c <= 65500)
-                    : c <= 65547)
-                  : (c <= 65574 || (c >= 65576 && c <= 65594)))))))
-            : (c <= 65597 || (c < 66432
-              ? (c < 66176
-                ? (c < 65664
-                  ? (c < 65616
-                    ? (c >= 65599 && c <= 65613)
-                    : c <= 65629)
-                  : (c <= 65786 || (c >= 65856 && c <= 65908)))
-                : (c <= 66204 || (c < 66349
-                  ? (c < 66304
-                    ? (c >= 66208 && c <= 66256)
-                    : c <= 66335)
-                  : (c <= 66378 || (c >= 66384 && c <= 66421)))))
-              : (c <= 66461 || (c < 66736
-                ? (c < 66513
-                  ? (c < 66504
-                    ? (c >= 66464 && c <= 66499)
-                    : c <= 66511)
-                  : (c <= 66517 || (c >= 66560 && c <= 66717)))
-                : (c <= 66771 || (c < 66864
-                  ? (c < 66816
-                    ? (c >= 66776 && c <= 66811)
-                    : c <= 66855)
-                  : (c <= 66915 || (c >= 66928 && c <= 66938)))))))))))
-        : (c <= 66954 || (c < 68800
-          ? (c < 67808
-            ? (c < 67463
-              ? (c < 67003
-                ? (c < 66967
-                  ? (c < 66964
-                    ? (c >= 66956 && c <= 66962)
-                    : c <= 66965)
-                  : (c <= 66977 || (c < 66995
-                    ? (c >= 66979 && c <= 66993)
-                    : c <= 67001)))
-                : (c <= 67004 || (c < 67424
-                  ? (c < 67392
-                    ? (c >= 67072 && c <= 67382)
-                    : c <= 67413)
-                  : (c <= 67431 || (c >= 67456 && c <= 67461)))))
-              : (c <= 67504 || (c < 67639
-                ? (c < 67592
-                  ? (c < 67584
-                    ? (c >= 67506 && c <= 67514)
-                    : c <= 67589)
-                  : (c <= 67592 || (c >= 67594 && c <= 67637)))
-                : (c <= 67640 || (c < 67680
-                  ? (c < 67647
-                    ? c == 67644
-                    : c <= 67669)
-                  : (c <= 67702 || (c >= 67712 && c <= 67742)))))))
-            : (c <= 67826 || (c < 68192
-              ? (c < 68030
-                ? (c < 67872
-                  ? (c < 67840
-                    ? (c >= 67828 && c <= 67829)
-                    : c <= 67861)
-                  : (c <= 67897 || (c >= 67968 && c <= 68023)))
-                : (c <= 68031 || (c < 68117
-                  ? (c < 68112
-                    ? c == 68096
-                    : c <= 68115)
-                  : (c <= 68119 || (c >= 68121 && c <= 68149)))))
-              : (c <= 68220 || (c < 68416
-                ? (c < 68297
-                  ? (c < 68288
-                    ? (c >= 68224 && c <= 68252)
-                    : c <= 68295)
-                  : (c <= 68324 || (c >= 68352 && c <= 68405)))
-                : (c <= 68437 || (c < 68608
-                  ? (c < 68480
-                    ? (c >= 68448 && c <= 68466)
-                    : c <= 68497)
-                  : (c <= 68680 || (c >= 68736 && c <= 68786)))))))))
-          : (c <= 68850 || (c < 70081
-            ? (c < 69745
-              ? (c < 69424
-                ? (c < 69296
-                  ? (c < 69248
-                    ? (c >= 68864 && c <= 68899)
-                    : c <= 69289)
-                  : (c <= 69297 || (c < 69415
-                    ? (c >= 69376 && c <= 69404)
-                    : c <= 69415)))
-                : (c <= 69445 || (c < 69600
-                  ? (c < 69552
-                    ? (c >= 69488 && c <= 69505)
-                    : c <= 69572)
-                  : (c <= 69622 || (c >= 69635 && c <= 69687)))))
-              : (c <= 69746 || (c < 69956
-                ? (c < 69840
-                  ? (c < 69763
-                    ? c == 69749
-                    : c <= 69807)
-                  : (c <= 69864 || (c >= 69891 && c <= 69926)))
-                : (c <= 69956 || (c < 70006
-                  ? (c < 69968
-                    ? c == 69959
-                    : c <= 70002)
-                  : (c <= 70006 || (c >= 70019 && c <= 70066)))))))
-            : (c <= 70084 || (c < 70320
-              ? (c < 70272
-                ? (c < 70144
-                  ? (c < 70108
-                    ? c == 70106
-                    : c <= 70108)
-                  : (c <= 70161 || (c >= 70163 && c <= 70187)))
-                : (c <= 70278 || (c < 70287
-                  ? (c < 70282
-                    ? c == 70280
-                    : c <= 70285)
-                  : (c <= 70301 || (c >= 70303 && c <= 70312)))))
-              : (c <= 70366 || (c < 70450
-                ? (c < 70419
-                  ? (c < 70415
-                    ? (c >= 70405 && c <= 70412)
-                    : c <= 70416)
-                  : (c <= 70440 || (c >= 70442 && c <= 70448)))
-                : (c <= 70451 || (c < 70480
-                  ? (c < 70461
-                    ? (c >= 70453 && c <= 70457)
-                    : c <= 70461)
-                  : (c <= 70480 || (c >= 70493 && c <= 70497)))))))))))))
-      : (c <= 70708 || (c < 119894
-        ? (c < 73056
-          ? (c < 71999
-            ? (c < 71352
-              ? (c < 71040
-                ? (c < 70784
-                  ? (c < 70751
-                    ? (c >= 70727 && c <= 70730)
-                    : c <= 70753)
-                  : (c <= 70831 || (c < 70855
-                    ? (c >= 70852 && c <= 70853)
-                    : c <= 70855)))
-                : (c <= 71086 || (c < 71236
-                  ? (c < 71168
-                    ? (c >= 71128 && c <= 71131)
-                    : c <= 71215)
-                  : (c <= 71236 || (c >= 71296 && c <= 71338)))))
-              : (c <= 71352 || (c < 71935
-                ? (c < 71680
-                  ? (c < 71488
-                    ? (c >= 71424 && c <= 71450)
-                    : c <= 71494)
-                  : (c <= 71723 || (c >= 71840 && c <= 71903)))
-                : (c <= 71942 || (c < 71957
-                  ? (c < 71948
-                    ? c == 71945
-                    : c <= 71955)
-                  : (c <= 71958 || (c >= 71960 && c <= 71983)))))))
-            : (c <= 71999 || (c < 72349
-              ? (c < 72192
-                ? (c < 72106
-                  ? (c < 72096
-                    ? c == 72001
-                    : c <= 72103)
-                  : (c <= 72144 || (c < 72163
-                    ? c == 72161
-                    : c <= 72163)))
-                : (c <= 72192 || (c < 72272
-                  ? (c < 72250
-                    ? (c >= 72203 && c <= 72242)
-                    : c <= 72250)
-                  : (c <= 72272 || (c >= 72284 && c <= 72329)))))
-              : (c <= 72349 || (c < 72818
-                ? (c < 72714
-                  ? (c < 72704
-                    ? (c >= 72368 && c <= 72440)
-                    : c <= 72712)
-                  : (c <= 72750 || c == 72768))
-                : (c <= 72847 || (c < 72971
-                  ? (c < 72968
-                    ? (c >= 72960 && c <= 72966)
-                    : c <= 72969)
-                  : (c <= 73008 || c == 73030))))))))
-          : (c <= 73061 || (c < 93952
-            ? (c < 82944
-              ? (c < 73728
-                ? (c < 73112
-                  ? (c < 73066
-                    ? (c >= 73063 && c <= 73064)
-                    : c <= 73097)
-                  : (c <= 73112 || (c < 73648
-                    ? (c >= 73440 && c <= 73458)
-                    : c <= 73648)))
-                : (c <= 74649 || (c < 77712
-                  ? (c < 74880
-                    ? (c >= 74752 && c <= 74862)
-                    : c <= 75075)
-                  : (c <= 77808 || (c >= 77824 && c <= 78894)))))
-              : (c <= 83526 || (c < 92928
-                ? (c < 92784
-                  ? (c < 92736
-                    ? (c >= 92160 && c <= 92728)
-                    : c <= 92766)
-                  : (c <= 92862 || (c >= 92880 && c <= 92909)))
-                : (c <= 92975 || (c < 93053
-                  ? (c < 93027
-                    ? (c >= 92992 && c <= 92995)
-                    : c <= 93047)
-                  : (c <= 93071 || (c >= 93760 && c <= 93823)))))))
-            : (c <= 94026 || (c < 110589
-              ? (c < 94208
-                ? (c < 94176
-                  ? (c < 94099
-                    ? c == 94032
-                    : c <= 94111)
-                  : (c <= 94177 || c == 94179))
-                : (c <= 100343 || (c < 110576
-                  ? (c < 101632
-                    ? (c >= 100352 && c <= 101589)
-                    : c <= 101640)
-                  : (c <= 110579 || (c >= 110581 && c <= 110587)))))
-              : (c <= 110590 || (c < 113664
-                ? (c < 110948
-                  ? (c < 110928
-                    ? (c >= 110592 && c <= 110882)
-                    : c <= 110930)
-                  : (c <= 110951 || (c >= 110960 && c <= 111355)))
-                : (c <= 113770 || (c < 113808
-                  ? (c < 113792
-                    ? (c >= 113776 && c <= 113788)
-                    : c <= 113800)
-                  : (c <= 113817 || (c >= 119808 && c <= 119892)))))))))))
-        : (c <= 119964 || (c < 125259
-          ? (c < 120572
-            ? (c < 120086
-              ? (c < 119995
-                ? (c < 119973
-                  ? (c < 119970
-                    ? (c >= 119966 && c <= 119967)
-                    : c <= 119970)
-                  : (c <= 119974 || (c < 119982
-                    ? (c >= 119977 && c <= 119980)
-                    : c <= 119993)))
-                : (c <= 119995 || (c < 120071
-                  ? (c < 120005
-                    ? (c >= 119997 && c <= 120003)
-                    : c <= 120069)
-                  : (c <= 120074 || (c >= 120077 && c <= 120084)))))
-              : (c <= 120092 || (c < 120138
-                ? (c < 120128
-                  ? (c < 120123
-                    ? (c >= 120094 && c <= 120121)
-                    : c <= 120126)
-                  : (c <= 120132 || c == 120134))
-                : (c <= 120144 || (c < 120514
-                  ? (c < 120488
-                    ? (c >= 120146 && c <= 120485)
-                    : c <= 120512)
-                  : (c <= 120538 || (c >= 120540 && c <= 120570)))))))
-            : (c <= 120596 || (c < 123191
-              ? (c < 120714
-                ? (c < 120656
-                  ? (c < 120630
-                    ? (c >= 120598 && c <= 120628)
-                    : c <= 120654)
-                  : (c <= 120686 || (c >= 120688 && c <= 120712)))
-                : (c <= 120744 || (c < 122624
-                  ? (c < 120772
-                    ? (c >= 120746 && c <= 120770)
-                    : c <= 120779)
-                  : (c <= 122654 || (c >= 123136 && c <= 123180)))))
-              : (c <= 123197 || (c < 124904
-                ? (c < 123584
-                  ? (c < 123536
-                    ? c == 123214
-                    : c <= 123565)
-                  : (c <= 123627 || (c >= 124896 && c <= 124902)))
-                : (c <= 124907 || (c < 124928
-                  ? (c < 124912
-                    ? (c >= 124909 && c <= 124910)
-                    : c <= 124926)
-                  : (c <= 125124 || (c >= 125184 && c <= 125251)))))))))
-          : (c <= 125259 || (c < 126559
-            ? (c < 126535
-              ? (c < 126505
-                ? (c < 126497
-                  ? (c < 126469
-                    ? (c >= 126464 && c <= 126467)
-                    : c <= 126495)
-                  : (c <= 126498 || (c < 126503
-                    ? c == 126500
-                    : c <= 126503)))
-                : (c <= 126514 || (c < 126523
-                  ? (c < 126521
-                    ? (c >= 126516 && c <= 126519)
-                    : c <= 126521)
-                  : (c <= 126523 || c == 126530))))
-              : (c <= 126535 || (c < 126548
-                ? (c < 126541
-                  ? (c < 126539
-                    ? c == 126537
-                    : c <= 126539)
-                  : (c <= 126543 || (c >= 126545 && c <= 126546)))
-                : (c <= 126548 || (c < 126555
-                  ? (c < 126553
-                    ? c == 126551
-                    : c <= 126553)
-                  : (c <= 126555 || c == 126557))))))
-            : (c <= 126559 || (c < 126625
-              ? (c < 126580
-                ? (c < 126567
-                  ? (c < 126564
-                    ? (c >= 126561 && c <= 126562)
-                    : c <= 126564)
-                  : (c <= 126570 || (c >= 126572 && c <= 126578)))
-                : (c <= 126583 || (c < 126592
-                  ? (c < 126590
-                    ? (c >= 126585 && c <= 126588)
-                    : c <= 126590)
-                  : (c <= 126601 || (c >= 126603 && c <= 126619)))))
-              : (c <= 126627 || (c < 177984
-                ? (c < 131072
-                  ? (c < 126635
-                    ? (c >= 126629 && c <= 126633)
-                    : c <= 126651)
-                  : (c <= 173791 || (c >= 173824 && c <= 177976)))
-                : (c <= 178205 || (c < 194560
-                  ? (c < 183984
-                    ? (c >= 178208 && c <= 183969)
-                    : c <= 191456)
-                  : (c <= 195101 || (c >= 196608 && c <= 201546)))))))))))))))));
-}
+static TSCharacterRange sym_number_literal_character_set_3[] = {
+  {'\'', '\''}, {'0', '9'}, {'B', 'B'}, {'D', 'F'}, {'L', 'L'}, {'P', 'P'}, {'U', 'U'}, {'W', 'W'},
+  {'b', 'b'}, {'d', 'f'}, {'l', 'l'}, {'p', 'p'}, {'u', 'u'}, {'w', 'w'},
+};
 
-static inline bool sym_identifier_character_set_2(int32_t c) {
-  return (c < 43494
-    ? (c < 4186
-      ? (c < 2703
-        ? (c < 1969
-          ? (c < 908
-            ? (c < 710
-              ? (c < 181
-                ? (c < '_'
-                  ? (c < 'A'
-                    ? c == '$'
-                    : c <= 'Z')
-                  : (c <= '_' || (c < 170
-                    ? (c >= 'a' && c <= 'z')
-                    : c <= 170)))
-                : (c <= 181 || (c < 216
-                  ? (c < 192
-                    ? c == 186
-                    : c <= 214)
-                  : (c <= 246 || (c >= 248 && c <= 705)))))
-              : (c <= 721 || (c < 886
-                ? (c < 750
-                  ? (c < 748
-                    ? (c >= 736 && c <= 740)
-                    : c <= 748)
-                  : (c <= 750 || (c >= 880 && c <= 884)))
-                : (c <= 887 || (c < 902
-                  ? (c < 895
-                    ? (c >= 891 && c <= 893)
-                    : c <= 895)
-                  : (c <= 902 || (c >= 904 && c <= 906)))))))
-            : (c <= 908 || (c < 1646
-              ? (c < 1369
-                ? (c < 1015
-                  ? (c < 931
-                    ? (c >= 910 && c <= 929)
-                    : c <= 1013)
-                  : (c <= 1153 || (c < 1329
-                    ? (c >= 1162 && c <= 1327)
-                    : c <= 1366)))
-                : (c <= 1369 || (c < 1519
-                  ? (c < 1488
-                    ? (c >= 1376 && c <= 1416)
-                    : c <= 1514)
-                  : (c <= 1522 || (c >= 1568 && c <= 1610)))))
-              : (c <= 1647 || (c < 1786
-                ? (c < 1765
-                  ? (c < 1749
-                    ? (c >= 1649 && c <= 1747)
-                    : c <= 1749)
-                  : (c <= 1766 || (c >= 1774 && c <= 1775)))
-                : (c <= 1788 || (c < 1810
-                  ? (c < 1808
-                    ? c == 1791
-                    : c <= 1808)
-                  : (c <= 1839 || (c >= 1869 && c <= 1957)))))))))
-          : (c <= 1969 || (c < 2474
-            ? (c < 2185
-              ? (c < 2084
-                ? (c < 2042
-                  ? (c < 2036
-                    ? (c >= 1994 && c <= 2026)
-                    : c <= 2037)
-                  : (c <= 2042 || (c < 2074
-                    ? (c >= 2048 && c <= 2069)
-                    : c <= 2074)))
-                : (c <= 2084 || (c < 2144
-                  ? (c < 2112
-                    ? c == 2088
-                    : c <= 2136)
-                  : (c <= 2154 || (c >= 2160 && c <= 2183)))))
-              : (c <= 2190 || (c < 2392
-                ? (c < 2365
-                  ? (c < 2308
-                    ? (c >= 2208 && c <= 2249)
-                    : c <= 2361)
-                  : (c <= 2365 || c == 2384))
-                : (c <= 2401 || (c < 2447
-                  ? (c < 2437
-                    ? (c >= 2417 && c <= 2432)
-                    : c <= 2444)
-                  : (c <= 2448 || (c >= 2451 && c <= 2472)))))))
-            : (c <= 2480 || (c < 2575
-              ? (c < 2524
-                ? (c < 2493
-                  ? (c < 2486
-                    ? c == 2482
-                    : c <= 2489)
-                  : (c <= 2493 || c == 2510))
-                : (c <= 2525 || (c < 2556
-                  ? (c < 2544
-                    ? (c >= 2527 && c <= 2529)
-                    : c <= 2545)
-                  : (c <= 2556 || (c >= 2565 && c <= 2570)))))
-              : (c <= 2576 || (c < 2616
-                ? (c < 2610
-                  ? (c < 2602
-                    ? (c >= 2579 && c <= 2600)
-                    : c <= 2608)
-                  : (c <= 2611 || (c >= 2613 && c <= 2614)))
-                : (c <= 2617 || (c < 2674
-                  ? (c < 2654
-                    ? (c >= 2649 && c <= 2652)
-                    : c <= 2654)
-                  : (c <= 2676 || (c >= 2693 && c <= 2701)))))))))))
-        : (c <= 2705 || (c < 3218
-          ? (c < 2958
-            ? (c < 2835
-              ? (c < 2768
-                ? (c < 2738
-                  ? (c < 2730
-                    ? (c >= 2707 && c <= 2728)
-                    : c <= 2736)
-                  : (c <= 2739 || (c < 2749
-                    ? (c >= 2741 && c <= 2745)
-                    : c <= 2749)))
-                : (c <= 2768 || (c < 2821
-                  ? (c < 2809
-                    ? (c >= 2784 && c <= 2785)
-                    : c <= 2809)
-                  : (c <= 2828 || (c >= 2831 && c <= 2832)))))
-              : (c <= 2856 || (c < 2908
-                ? (c < 2869
-                  ? (c < 2866
-                    ? (c >= 2858 && c <= 2864)
-                    : c <= 2867)
-                  : (c <= 2873 || c == 2877))
-                : (c <= 2909 || (c < 2947
-                  ? (c < 2929
-                    ? (c >= 2911 && c <= 2913)
-                    : c <= 2929)
-                  : (c <= 2947 || (c >= 2949 && c <= 2954)))))))
-            : (c <= 2960 || (c < 3086
-              ? (c < 2979
-                ? (c < 2972
-                  ? (c < 2969
-                    ? (c >= 2962 && c <= 2965)
-                    : c <= 2970)
-                  : (c <= 2972 || (c >= 2974 && c <= 2975)))
-                : (c <= 2980 || (c < 3024
-                  ? (c < 2990
-                    ? (c >= 2984 && c <= 2986)
-                    : c <= 3001)
-                  : (c <= 3024 || (c >= 3077 && c <= 3084)))))
-              : (c <= 3088 || (c < 3165
-                ? (c < 3133
-                  ? (c < 3114
-                    ? (c >= 3090 && c <= 3112)
-                    : c <= 3129)
-                  : (c <= 3133 || (c >= 3160 && c <= 3162)))
-                : (c <= 3165 || (c < 3205
-                  ? (c < 3200
-                    ? (c >= 3168 && c <= 3169)
-                    : c <= 3200)
-                  : (c <= 3212 || (c >= 3214 && c <= 3216)))))))))
-          : (c <= 3240 || (c < 3634
-            ? (c < 3406
-              ? (c < 3313
-                ? (c < 3261
-                  ? (c < 3253
-                    ? (c >= 3242 && c <= 3251)
-                    : c <= 3257)
-                  : (c <= 3261 || (c < 3296
-                    ? (c >= 3293 && c <= 3294)
-                    : c <= 3297)))
-                : (c <= 3314 || (c < 3346
-                  ? (c < 3342
-                    ? (c >= 3332 && c <= 3340)
-                    : c <= 3344)
-                  : (c <= 3386 || c == 3389))))
-              : (c <= 3406 || (c < 3482
-                ? (c < 3450
-                  ? (c < 3423
-                    ? (c >= 3412 && c <= 3414)
-                    : c <= 3425)
-                  : (c <= 3455 || (c >= 3461 && c <= 3478)))
-                : (c <= 3505 || (c < 3520
-                  ? (c < 3517
-                    ? (c >= 3507 && c <= 3515)
-                    : c <= 3517)
-                  : (c <= 3526 || (c >= 3585 && c <= 3632)))))))
-            : (c <= 3634 || (c < 3776
-              ? (c < 3724
-                ? (c < 3716
-                  ? (c < 3713
-                    ? (c >= 3648 && c <= 3654)
-                    : c <= 3714)
-                  : (c <= 3716 || (c >= 3718 && c <= 3722)))
-                : (c <= 3747 || (c < 3762
-                  ? (c < 3751
-                    ? c == 3749
-                    : c <= 3760)
-                  : (c <= 3762 || c == 3773))))
-              : (c <= 3780 || (c < 3913
-                ? (c < 3840
-                  ? (c < 3804
-                    ? c == 3782
-                    : c <= 3807)
-                  : (c <= 3840 || (c >= 3904 && c <= 3911)))
-                : (c <= 3948 || (c < 4159
-                  ? (c < 4096
-                    ? (c >= 3976 && c <= 3980)
-                    : c <= 4138)
-                  : (c <= 4159 || (c >= 4176 && c <= 4181)))))))))))))
-      : (c <= 4189 || (c < 8130
-        ? (c < 6108
-          ? (c < 4802
-            ? (c < 4682
-              ? (c < 4256
-                ? (c < 4206
-                  ? (c < 4197
-                    ? c == 4193
-                    : c <= 4198)
-                  : (c <= 4208 || (c < 4238
-                    ? (c >= 4213 && c <= 4225)
-                    : c <= 4238)))
-                : (c <= 4293 || (c < 4304
-                  ? (c < 4301
-                    ? c == 4295
-                    : c <= 4301)
-                  : (c <= 4346 || (c >= 4348 && c <= 4680)))))
-              : (c <= 4685 || (c < 4746
-                ? (c < 4698
-                  ? (c < 4696
-                    ? (c >= 4688 && c <= 4694)
-                    : c <= 4696)
-                  : (c <= 4701 || (c >= 4704 && c <= 4744)))
-                : (c <= 4749 || (c < 4792
-                  ? (c < 4786
-                    ? (c >= 4752 && c <= 4784)
-                    : c <= 4789)
-                  : (c <= 4798 || c == 4800))))))
-            : (c <= 4805 || (c < 5761
-              ? (c < 4992
-                ? (c < 4882
-                  ? (c < 4824
-                    ? (c >= 4808 && c <= 4822)
-                    : c <= 4880)
-                  : (c <= 4885 || (c >= 4888 && c <= 4954)))
-                : (c <= 5007 || (c < 5121
-                  ? (c < 5112
-                    ? (c >= 5024 && c <= 5109)
-                    : c <= 5117)
-                  : (c <= 5740 || (c >= 5743 && c <= 5759)))))
-              : (c <= 5786 || (c < 5952
-                ? (c < 5888
-                  ? (c < 5870
-                    ? (c >= 5792 && c <= 5866)
-                    : c <= 5880)
-                  : (c <= 5905 || (c >= 5919 && c <= 5937)))
-                : (c <= 5969 || (c < 6016
-                  ? (c < 5998
-                    ? (c >= 5984 && c <= 5996)
-                    : c <= 6000)
-                  : (c <= 6067 || c == 6103))))))))
-          : (c <= 6108 || (c < 7296
-            ? (c < 6688
-              ? (c < 6480
-                ? (c < 6314
-                  ? (c < 6272
-                    ? (c >= 6176 && c <= 6264)
-                    : c <= 6312)
-                  : (c <= 6314 || (c < 6400
-                    ? (c >= 6320 && c <= 6389)
-                    : c <= 6430)))
-                : (c <= 6509 || (c < 6576
-                  ? (c < 6528
-                    ? (c >= 6512 && c <= 6516)
-                    : c <= 6571)
-                  : (c <= 6601 || (c >= 6656 && c <= 6678)))))
-              : (c <= 6740 || (c < 7086
-                ? (c < 6981
-                  ? (c < 6917
-                    ? c == 6823
-                    : c <= 6963)
-                  : (c <= 6988 || (c >= 7043 && c <= 7072)))
-                : (c <= 7087 || (c < 7245
-                  ? (c < 7168
-                    ? (c >= 7098 && c <= 7141)
-                    : c <= 7203)
-                  : (c <= 7247 || (c >= 7258 && c <= 7293)))))))
-            : (c <= 7304 || (c < 7968
-              ? (c < 7413
-                ? (c < 7401
-                  ? (c < 7357
-                    ? (c >= 7312 && c <= 7354)
-                    : c <= 7359)
-                  : (c <= 7404 || (c >= 7406 && c <= 7411)))
-                : (c <= 7414 || (c < 7680
-                  ? (c < 7424
-                    ? c == 7418
-                    : c <= 7615)
-                  : (c <= 7957 || (c >= 7960 && c <= 7965)))))
-              : (c <= 8005 || (c < 8029
-                ? (c < 8025
-                  ? (c < 8016
-                    ? (c >= 8008 && c <= 8013)
-                    : c <= 8023)
-                  : (c <= 8025 || c == 8027))
-                : (c <= 8029 || (c < 8118
-                  ? (c < 8064
-                    ? (c >= 8031 && c <= 8061)
-                    : c <= 8116)
-                  : (c <= 8124 || c == 8126))))))))))
-        : (c <= 8132 || (c < 12321
-          ? (c < 8526
-            ? (c < 8455
-              ? (c < 8182
-                ? (c < 8150
-                  ? (c < 8144
-                    ? (c >= 8134 && c <= 8140)
-                    : c <= 8147)
-                  : (c <= 8155 || (c < 8178
-                    ? (c >= 8160 && c <= 8172)
-                    : c <= 8180)))
-                : (c <= 8188 || (c < 8336
-                  ? (c < 8319
-                    ? c == 8305
-                    : c <= 8319)
-                  : (c <= 8348 || c == 8450))))
-              : (c <= 8455 || (c < 8486
-                ? (c < 8472
-                  ? (c < 8469
-                    ? (c >= 8458 && c <= 8467)
-                    : c <= 8469)
-                  : (c <= 8477 || c == 8484))
-                : (c <= 8486 || (c < 8508
-                  ? (c < 8490
-                    ? c == 8488
-                    : c <= 8505)
-                  : (c <= 8511 || (c >= 8517 && c <= 8521)))))))
-            : (c <= 8526 || (c < 11648
-              ? (c < 11520
-                ? (c < 11499
-                  ? (c < 11264
-                    ? (c >= 8544 && c <= 8584)
-                    : c <= 11492)
-                  : (c <= 11502 || (c >= 11506 && c <= 11507)))
-                : (c <= 11557 || (c < 11568
-                  ? (c < 11565
-                    ? c == 11559
-                    : c <= 11565)
-                  : (c <= 11623 || c == 11631))))
-              : (c <= 11670 || (c < 11712
-                ? (c < 11696
-                  ? (c < 11688
-                    ? (c >= 11680 && c <= 11686)
-                    : c <= 11694)
-                  : (c <= 11702 || (c >= 11704 && c <= 11710)))
-                : (c <= 11718 || (c < 11736
-                  ? (c < 11728
-                    ? (c >= 11720 && c <= 11726)
-                    : c <= 11734)
-                  : (c <= 11742 || (c >= 12293 && c <= 12295)))))))))
-          : (c <= 12329 || (c < 42786
-            ? (c < 13312
-              ? (c < 12540
-                ? (c < 12353
-                  ? (c < 12344
-                    ? (c >= 12337 && c <= 12341)
-                    : c <= 12348)
-                  : (c <= 12438 || (c < 12449
-                    ? (c >= 12445 && c <= 12447)
-                    : c <= 12538)))
-                : (c <= 12543 || (c < 12704
-                  ? (c < 12593
-                    ? (c >= 12549 && c <= 12591)
-                    : c <= 12686)
-                  : (c <= 12735 || (c >= 12784 && c <= 12799)))))
-              : (c <= 19903 || (c < 42538
-                ? (c < 42240
-                  ? (c < 42192
-                    ? (c >= 19968 && c <= 42124)
-                    : c <= 42237)
-                  : (c <= 42508 || (c >= 42512 && c <= 42527)))
-                : (c <= 42539 || (c < 42656
-                  ? (c < 42623
-                    ? (c >= 42560 && c <= 42606)
-                    : c <= 42653)
-                  : (c <= 42735 || (c >= 42775 && c <= 42783)))))))
-            : (c <= 42888 || (c < 43138
-              ? (c < 42994
-                ? (c < 42963
-                  ? (c < 42960
-                    ? (c >= 42891 && c <= 42954)
-                    : c <= 42961)
-                  : (c <= 42963 || (c >= 42965 && c <= 42969)))
-                : (c <= 43009 || (c < 43020
-                  ? (c < 43015
-                    ? (c >= 43011 && c <= 43013)
-                    : c <= 43018)
-                  : (c <= 43042 || (c >= 43072 && c <= 43123)))))
-              : (c <= 43187 || (c < 43312
-                ? (c < 43261
-                  ? (c < 43259
-                    ? (c >= 43250 && c <= 43255)
-                    : c <= 43259)
-                  : (c <= 43262 || (c >= 43274 && c <= 43301)))
-                : (c <= 43334 || (c < 43471
-                  ? (c < 43396
-                    ? (c >= 43360 && c <= 43388)
-                    : c <= 43442)
-                  : (c <= 43471 || (c >= 43488 && c <= 43492)))))))))))))))
-    : (c <= 43503 || (c < 70727
-      ? (c < 66956
-        ? (c < 64914
-          ? (c < 43824
-            ? (c < 43712
-              ? (c < 43642
-                ? (c < 43584
-                  ? (c < 43520
-                    ? (c >= 43514 && c <= 43518)
-                    : c <= 43560)
-                  : (c <= 43586 || (c < 43616
-                    ? (c >= 43588 && c <= 43595)
-                    : c <= 43638)))
-                : (c <= 43642 || (c < 43701
-                  ? (c < 43697
-                    ? (c >= 43646 && c <= 43695)
-                    : c <= 43697)
-                  : (c <= 43702 || (c >= 43705 && c <= 43709)))))
-              : (c <= 43712 || (c < 43777
-                ? (c < 43744
-                  ? (c < 43739
-                    ? c == 43714
-                    : c <= 43741)
-                  : (c <= 43754 || (c >= 43762 && c <= 43764)))
-                : (c <= 43782 || (c < 43808
-                  ? (c < 43793
-                    ? (c >= 43785 && c <= 43790)
-                    : c <= 43798)
-                  : (c <= 43814 || (c >= 43816 && c <= 43822)))))))
-            : (c <= 43866 || (c < 64287
-              ? (c < 63744
-                ? (c < 44032
-                  ? (c < 43888
-                    ? (c >= 43868 && c <= 43881)
-                    : c <= 44002)
-                  : (c <= 55203 || (c < 55243
-                    ? (c >= 55216 && c <= 55238)
-                    : c <= 55291)))
-                : (c <= 64109 || (c < 64275
-                  ? (c < 64256
-                    ? (c >= 64112 && c <= 64217)
-                    : c <= 64262)
-                  : (c <= 64279 || c == 64285))))
-              : (c <= 64296 || (c < 64323
-                ? (c < 64318
-                  ? (c < 64312
-                    ? (c >= 64298 && c <= 64310)
-                    : c <= 64316)
-                  : (c <= 64318 || (c >= 64320 && c <= 64321)))
-                : (c <= 64324 || (c < 64612
-                  ? (c < 64467
-                    ? (c >= 64326 && c <= 64433)
-                    : c <= 64605)
-                  : (c <= 64829 || (c >= 64848 && c <= 64911)))))))))
-          : (c <= 64967 || (c < 65599
-            ? (c < 65382
-              ? (c < 65147
-                ? (c < 65139
-                  ? (c < 65137
-                    ? (c >= 65008 && c <= 65017)
-                    : c <= 65137)
-                  : (c <= 65139 || (c < 65145
-                    ? c == 65143
-                    : c <= 65145)))
-                : (c <= 65147 || (c < 65313
-                  ? (c < 65151
-                    ? c == 65149
-                    : c <= 65276)
-                  : (c <= 65338 || (c >= 65345 && c <= 65370)))))
-              : (c <= 65437 || (c < 65498
-                ? (c < 65482
-                  ? (c < 65474
-                    ? (c >= 65440 && c <= 65470)
-                    : c <= 65479)
-                  : (c <= 65487 || (c >= 65490 && c <= 65495)))
-                : (c <= 65500 || (c < 65576
-                  ? (c < 65549
-                    ? (c >= 65536 && c <= 65547)
-                    : c <= 65574)
-                  : (c <= 65594 || (c >= 65596 && c <= 65597)))))))
-            : (c <= 65613 || (c < 66464
-              ? (c < 66208
-                ? (c < 65856
-                  ? (c < 65664
-                    ? (c >= 65616 && c <= 65629)
-                    : c <= 65786)
-                  : (c <= 65908 || (c >= 66176 && c <= 66204)))
-                : (c <= 66256 || (c < 66384
-                  ? (c < 66349
-                    ? (c >= 66304 && c <= 66335)
-                    : c <= 66378)
-                  : (c <= 66421 || (c >= 66432 && c <= 66461)))))
-              : (c <= 66499 || (c < 66776
-                ? (c < 66560
-                  ? (c < 66513
-                    ? (c >= 66504 && c <= 66511)
-                    : c <= 66517)
-                  : (c <= 66717 || (c >= 66736 && c <= 66771)))
-                : (c <= 66811 || (c < 66928
-                  ? (c < 66864
-                    ? (c >= 66816 && c <= 66855)
-                    : c <= 66915)
-                  : (c <= 66938 || (c >= 66940 && c <= 66954)))))))))))
-        : (c <= 66962 || (c < 68864
-          ? (c < 67828
-            ? (c < 67506
-              ? (c < 67072
-                ? (c < 66979
-                  ? (c < 66967
-                    ? (c >= 66964 && c <= 66965)
-                    : c <= 66977)
-                  : (c <= 66993 || (c < 67003
-                    ? (c >= 66995 && c <= 67001)
-                    : c <= 67004)))
-                : (c <= 67382 || (c < 67456
-                  ? (c < 67424
-                    ? (c >= 67392 && c <= 67413)
-                    : c <= 67431)
-                  : (c <= 67461 || (c >= 67463 && c <= 67504)))))
-              : (c <= 67514 || (c < 67644
-                ? (c < 67594
-                  ? (c < 67592
-                    ? (c >= 67584 && c <= 67589)
-                    : c <= 67592)
-                  : (c <= 67637 || (c >= 67639 && c <= 67640)))
-                : (c <= 67644 || (c < 67712
-                  ? (c < 67680
-                    ? (c >= 67647 && c <= 67669)
-                    : c <= 67702)
-                  : (c <= 67742 || (c >= 67808 && c <= 67826)))))))
-            : (c <= 67829 || (c < 68224
-              ? (c < 68096
-                ? (c < 67968
-                  ? (c < 67872
-                    ? (c >= 67840 && c <= 67861)
-                    : c <= 67897)
-                  : (c <= 68023 || (c >= 68030 && c <= 68031)))
-                : (c <= 68096 || (c < 68121
-                  ? (c < 68117
-                    ? (c >= 68112 && c <= 68115)
-                    : c <= 68119)
-                  : (c <= 68149 || (c >= 68192 && c <= 68220)))))
-              : (c <= 68252 || (c < 68448
-                ? (c < 68352
-                  ? (c < 68297
-                    ? (c >= 68288 && c <= 68295)
-                    : c <= 68324)
-                  : (c <= 68405 || (c >= 68416 && c <= 68437)))
-                : (c <= 68466 || (c < 68736
-                  ? (c < 68608
-                    ? (c >= 68480 && c <= 68497)
-                    : c <= 68680)
-                  : (c <= 68786 || (c >= 68800 && c <= 68850)))))))))
-          : (c <= 68899 || (c < 70106
-            ? (c < 69749
-              ? (c < 69488
-                ? (c < 69376
-                  ? (c < 69296
-                    ? (c >= 69248 && c <= 69289)
-                    : c <= 69297)
-                  : (c <= 69404 || (c < 69424
-                    ? c == 69415
-                    : c <= 69445)))
-                : (c <= 69505 || (c < 69635
-                  ? (c < 69600
-                    ? (c >= 69552 && c <= 69572)
-                    : c <= 69622)
-                  : (c <= 69687 || (c >= 69745 && c <= 69746)))))
-              : (c <= 69749 || (c < 69959
-                ? (c < 69891
-                  ? (c < 69840
-                    ? (c >= 69763 && c <= 69807)
-                    : c <= 69864)
-                  : (c <= 69926 || c == 69956))
-                : (c <= 69959 || (c < 70019
-                  ? (c < 70006
-                    ? (c >= 69968 && c <= 70002)
-                    : c <= 70006)
-                  : (c <= 70066 || (c >= 70081 && c <= 70084)))))))
-            : (c <= 70106 || (c < 70405
-              ? (c < 70280
-                ? (c < 70163
-                  ? (c < 70144
-                    ? c == 70108
-                    : c <= 70161)
-                  : (c <= 70187 || (c >= 70272 && c <= 70278)))
-                : (c <= 70280 || (c < 70303
-                  ? (c < 70287
-                    ? (c >= 70282 && c <= 70285)
-                    : c <= 70301)
-                  : (c <= 70312 || (c >= 70320 && c <= 70366)))))
-              : (c <= 70412 || (c < 70453
-                ? (c < 70442
-                  ? (c < 70419
-                    ? (c >= 70415 && c <= 70416)
-                    : c <= 70440)
-                  : (c <= 70448 || (c >= 70450 && c <= 70451)))
-                : (c <= 70457 || (c < 70493
-                  ? (c < 70480
-                    ? c == 70461
-                    : c <= 70480)
-                  : (c <= 70497 || (c >= 70656 && c <= 70708)))))))))))))
-      : (c <= 70730 || (c < 119894
-        ? (c < 73056
-          ? (c < 72001
-            ? (c < 71424
-              ? (c < 71128
-                ? (c < 70852
-                  ? (c < 70784
-                    ? (c >= 70751 && c <= 70753)
-                    : c <= 70831)
-                  : (c <= 70853 || (c < 71040
-                    ? c == 70855
-                    : c <= 71086)))
-                : (c <= 71131 || (c < 71296
-                  ? (c < 71236
-                    ? (c >= 71168 && c <= 71215)
-                    : c <= 71236)
-                  : (c <= 71338 || c == 71352))))
-              : (c <= 71450 || (c < 71945
-                ? (c < 71840
-                  ? (c < 71680
-                    ? (c >= 71488 && c <= 71494)
-                    : c <= 71723)
-                  : (c <= 71903 || (c >= 71935 && c <= 71942)))
-                : (c <= 71945 || (c < 71960
-                  ? (c < 71957
-                    ? (c >= 71948 && c <= 71955)
-                    : c <= 71958)
-                  : (c <= 71983 || c == 71999))))))
-            : (c <= 72001 || (c < 72349
-              ? (c < 72192
-                ? (c < 72161
-                  ? (c < 72106
-                    ? (c >= 72096 && c <= 72103)
-                    : c <= 72144)
-                  : (c <= 72161 || c == 72163))
-                : (c <= 72192 || (c < 72272
-                  ? (c < 72250
-                    ? (c >= 72203 && c <= 72242)
-                    : c <= 72250)
-                  : (c <= 72272 || (c >= 72284 && c <= 72329)))))
-              : (c <= 72349 || (c < 72818
-                ? (c < 72714
-                  ? (c < 72704
-                    ? (c >= 72368 && c <= 72440)
-                    : c <= 72712)
-                  : (c <= 72750 || c == 72768))
-                : (c <= 72847 || (c < 72971
-                  ? (c < 72968
-                    ? (c >= 72960 && c <= 72966)
-                    : c <= 72969)
-                  : (c <= 73008 || c == 73030))))))))
-          : (c <= 73061 || (c < 93952
-            ? (c < 82944
-              ? (c < 73728
-                ? (c < 73112
-                  ? (c < 73066
-                    ? (c >= 73063 && c <= 73064)
-                    : c <= 73097)
-                  : (c <= 73112 || (c < 73648
-                    ? (c >= 73440 && c <= 73458)
-                    : c <= 73648)))
-                : (c <= 74649 || (c < 77712
-                  ? (c < 74880
-                    ? (c >= 74752 && c <= 74862)
-                    : c <= 75075)
-                  : (c <= 77808 || (c >= 77824 && c <= 78894)))))
-              : (c <= 83526 || (c < 92928
-                ? (c < 92784
-                  ? (c < 92736
-                    ? (c >= 92160 && c <= 92728)
-                    : c <= 92766)
-                  : (c <= 92862 || (c >= 92880 && c <= 92909)))
-                : (c <= 92975 || (c < 93053
-                  ? (c < 93027
-                    ? (c >= 92992 && c <= 92995)
-                    : c <= 93047)
-                  : (c <= 93071 || (c >= 93760 && c <= 93823)))))))
-            : (c <= 94026 || (c < 110589
-              ? (c < 94208
-                ? (c < 94176
-                  ? (c < 94099
-                    ? c == 94032
-                    : c <= 94111)
-                  : (c <= 94177 || c == 94179))
-                : (c <= 100343 || (c < 110576
-                  ? (c < 101632
-                    ? (c >= 100352 && c <= 101589)
-                    : c <= 101640)
-                  : (c <= 110579 || (c >= 110581 && c <= 110587)))))
-              : (c <= 110590 || (c < 113664
-                ? (c < 110948
-                  ? (c < 110928
-                    ? (c >= 110592 && c <= 110882)
-                    : c <= 110930)
-                  : (c <= 110951 || (c >= 110960 && c <= 111355)))
-                : (c <= 113770 || (c < 113808
-                  ? (c < 113792
-                    ? (c >= 113776 && c <= 113788)
-                    : c <= 113800)
-                  : (c <= 113817 || (c >= 119808 && c <= 119892)))))))))))
-        : (c <= 119964 || (c < 125259
-          ? (c < 120572
-            ? (c < 120086
-              ? (c < 119995
-                ? (c < 119973
-                  ? (c < 119970
-                    ? (c >= 119966 && c <= 119967)
-                    : c <= 119970)
-                  : (c <= 119974 || (c < 119982
-                    ? (c >= 119977 && c <= 119980)
-                    : c <= 119993)))
-                : (c <= 119995 || (c < 120071
-                  ? (c < 120005
-                    ? (c >= 119997 && c <= 120003)
-                    : c <= 120069)
-                  : (c <= 120074 || (c >= 120077 && c <= 120084)))))
-              : (c <= 120092 || (c < 120138
-                ? (c < 120128
-                  ? (c < 120123
-                    ? (c >= 120094 && c <= 120121)
-                    : c <= 120126)
-                  : (c <= 120132 || c == 120134))
-                : (c <= 120144 || (c < 120514
-                  ? (c < 120488
-                    ? (c >= 120146 && c <= 120485)
-                    : c <= 120512)
-                  : (c <= 120538 || (c >= 120540 && c <= 120570)))))))
-            : (c <= 120596 || (c < 123191
-              ? (c < 120714
-                ? (c < 120656
-                  ? (c < 120630
-                    ? (c >= 120598 && c <= 120628)
-                    : c <= 120654)
-                  : (c <= 120686 || (c >= 120688 && c <= 120712)))
-                : (c <= 120744 || (c < 122624
-                  ? (c < 120772
-                    ? (c >= 120746 && c <= 120770)
-                    : c <= 120779)
-                  : (c <= 122654 || (c >= 123136 && c <= 123180)))))
-              : (c <= 123197 || (c < 124904
-                ? (c < 123584
-                  ? (c < 123536
-                    ? c == 123214
-                    : c <= 123565)
-                  : (c <= 123627 || (c >= 124896 && c <= 124902)))
-                : (c <= 124907 || (c < 124928
-                  ? (c < 124912
-                    ? (c >= 124909 && c <= 124910)
-                    : c <= 124926)
-                  : (c <= 125124 || (c >= 125184 && c <= 125251)))))))))
-          : (c <= 125259 || (c < 126559
-            ? (c < 126535
-              ? (c < 126505
-                ? (c < 126497
-                  ? (c < 126469
-                    ? (c >= 126464 && c <= 126467)
-                    : c <= 126495)
-                  : (c <= 126498 || (c < 126503
-                    ? c == 126500
-                    : c <= 126503)))
-                : (c <= 126514 || (c < 126523
-                  ? (c < 126521
-                    ? (c >= 126516 && c <= 126519)
-                    : c <= 126521)
-                  : (c <= 126523 || c == 126530))))
-              : (c <= 126535 || (c < 126548
-                ? (c < 126541
-                  ? (c < 126539
-                    ? c == 126537
-                    : c <= 126539)
-                  : (c <= 126543 || (c >= 126545 && c <= 126546)))
-                : (c <= 126548 || (c < 126555
-                  ? (c < 126553
-                    ? c == 126551
-                    : c <= 126553)
-                  : (c <= 126555 || c == 126557))))))
-            : (c <= 126559 || (c < 126625
-              ? (c < 126580
-                ? (c < 126567
-                  ? (c < 126564
-                    ? (c >= 126561 && c <= 126562)
-                    : c <= 126564)
-                  : (c <= 126570 || (c >= 126572 && c <= 126578)))
-                : (c <= 126583 || (c < 126592
-                  ? (c < 126590
-                    ? (c >= 126585 && c <= 126588)
-                    : c <= 126590)
-                  : (c <= 126601 || (c >= 126603 && c <= 126619)))))
-              : (c <= 126627 || (c < 177984
-                ? (c < 131072
-                  ? (c < 126635
-                    ? (c >= 126629 && c <= 126633)
-                    : c <= 126651)
-                  : (c <= 173791 || (c >= 173824 && c <= 177976)))
-                : (c <= 178205 || (c < 194560
-                  ? (c < 183984
-                    ? (c >= 178208 && c <= 183969)
-                    : c <= 191456)
-                  : (c <= 195101 || (c >= 196608 && c <= 201546)))))))))))))))));
-}
+static TSCharacterRange sym_number_literal_character_set_4[] = {
+  {'0', '9'}, {'A', 'F'}, {'L', 'L'}, {'P', 'P'}, {'U', 'U'}, {'W', 'W'}, {'a', 'f'}, {'l', 'l'},
+  {'p', 'p'}, {'u', 'u'}, {'w', 'w'},
+};
 
-static inline bool sym_identifier_character_set_3(int32_t c) {
-  return (c < 43616
-    ? (c < 3782
-      ? (c < 2741
-        ? (c < 2042
-          ? (c < 931
-            ? (c < 248
-              ? (c < 170
-                ? (c < 'A'
-                  ? (c < '0'
-                    ? c == '$'
-                    : c <= '9')
-                  : (c <= 'Z' || (c < 'a'
-                    ? c == '_'
-                    : c <= 'z')))
-                : (c <= 170 || (c < 186
-                  ? (c < 183
-                    ? c == 181
-                    : c <= 183)
-                  : (c <= 186 || (c < 216
-                    ? (c >= 192 && c <= 214)
-                    : c <= 246)))))
-              : (c <= 705 || (c < 886
-                ? (c < 748
-                  ? (c < 736
-                    ? (c >= 710 && c <= 721)
-                    : c <= 740)
-                  : (c <= 748 || (c < 768
-                    ? c == 750
-                    : c <= 884)))
-                : (c <= 887 || (c < 902
-                  ? (c < 895
-                    ? (c >= 891 && c <= 893)
-                    : c <= 895)
-                  : (c <= 906 || (c < 910
-                    ? c == 908
-                    : c <= 929)))))))
-            : (c <= 1013 || (c < 1488
-              ? (c < 1376
-                ? (c < 1162
-                  ? (c < 1155
-                    ? (c >= 1015 && c <= 1153)
-                    : c <= 1159)
-                  : (c <= 1327 || (c < 1369
-                    ? (c >= 1329 && c <= 1366)
-                    : c <= 1369)))
-                : (c <= 1416 || (c < 1473
-                  ? (c < 1471
-                    ? (c >= 1425 && c <= 1469)
-                    : c <= 1471)
-                  : (c <= 1474 || (c < 1479
-                    ? (c >= 1476 && c <= 1477)
-                    : c <= 1479)))))
-              : (c <= 1514 || (c < 1759
-                ? (c < 1568
-                  ? (c < 1552
-                    ? (c >= 1519 && c <= 1522)
-                    : c <= 1562)
-                  : (c <= 1641 || (c < 1749
-                    ? (c >= 1646 && c <= 1747)
-                    : c <= 1756)))
-                : (c <= 1768 || (c < 1808
-                  ? (c < 1791
-                    ? (c >= 1770 && c <= 1788)
-                    : c <= 1791)
-                  : (c <= 1866 || (c < 1984
-                    ? (c >= 1869 && c <= 1969)
-                    : c <= 2037)))))))))
-          : (c <= 2042 || (c < 2556
-            ? (c < 2447
-              ? (c < 2185
-                ? (c < 2112
-                  ? (c < 2048
-                    ? c == 2045
-                    : c <= 2093)
-                  : (c <= 2139 || (c < 2160
-                    ? (c >= 2144 && c <= 2154)
-                    : c <= 2183)))
-                : (c <= 2190 || (c < 2406
-                  ? (c < 2275
-                    ? (c >= 2200 && c <= 2273)
-                    : c <= 2403)
-                  : (c <= 2415 || (c < 2437
-                    ? (c >= 2417 && c <= 2435)
-                    : c <= 2444)))))
-              : (c <= 2448 || (c < 2503
-                ? (c < 2482
-                  ? (c < 2474
-                    ? (c >= 2451 && c <= 2472)
-                    : c <= 2480)
-                  : (c <= 2482 || (c < 2492
-                    ? (c >= 2486 && c <= 2489)
-                    : c <= 2500)))
-                : (c <= 2504 || (c < 2524
-                  ? (c < 2519
-                    ? (c >= 2507 && c <= 2510)
-                    : c <= 2519)
-                  : (c <= 2525 || (c < 2534
-                    ? (c >= 2527 && c <= 2531)
-                    : c <= 2545)))))))
-            : (c <= 2556 || (c < 2631
-              ? (c < 2602
-                ? (c < 2565
-                  ? (c < 2561
-                    ? c == 2558
-                    : c <= 2563)
-                  : (c <= 2570 || (c < 2579
-                    ? (c >= 2575 && c <= 2576)
-                    : c <= 2600)))
-                : (c <= 2608 || (c < 2616
-                  ? (c < 2613
-                    ? (c >= 2610 && c <= 2611)
-                    : c <= 2614)
-                  : (c <= 2617 || (c < 2622
-                    ? c == 2620
-                    : c <= 2626)))))
-              : (c <= 2632 || (c < 2689
-                ? (c < 2649
-                  ? (c < 2641
-                    ? (c >= 2635 && c <= 2637)
-                    : c <= 2641)
-                  : (c <= 2652 || (c < 2662
-                    ? c == 2654
-                    : c <= 2677)))
-                : (c <= 2691 || (c < 2707
-                  ? (c < 2703
-                    ? (c >= 2693 && c <= 2701)
-                    : c <= 2705)
-                  : (c <= 2728 || (c < 2738
-                    ? (c >= 2730 && c <= 2736)
-                    : c <= 2739)))))))))))
-        : (c <= 2745 || (c < 3165
-          ? (c < 2949
-            ? (c < 2858
-              ? (c < 2790
-                ? (c < 2763
-                  ? (c < 2759
-                    ? (c >= 2748 && c <= 2757)
-                    : c <= 2761)
-                  : (c <= 2765 || (c < 2784
-                    ? c == 2768
-                    : c <= 2787)))
-                : (c <= 2799 || (c < 2821
-                  ? (c < 2817
-                    ? (c >= 2809 && c <= 2815)
-                    : c <= 2819)
-                  : (c <= 2828 || (c < 2835
-                    ? (c >= 2831 && c <= 2832)
-                    : c <= 2856)))))
-              : (c <= 2864 || (c < 2901
-                ? (c < 2876
-                  ? (c < 2869
-                    ? (c >= 2866 && c <= 2867)
-                    : c <= 2873)
-                  : (c <= 2884 || (c < 2891
-                    ? (c >= 2887 && c <= 2888)
-                    : c <= 2893)))
-                : (c <= 2903 || (c < 2918
-                  ? (c < 2911
-                    ? (c >= 2908 && c <= 2909)
-                    : c <= 2915)
-                  : (c <= 2927 || (c < 2946
-                    ? c == 2929
-                    : c <= 2947)))))))
-            : (c <= 2954 || (c < 3024
-              ? (c < 2979
-                ? (c < 2969
-                  ? (c < 2962
-                    ? (c >= 2958 && c <= 2960)
-                    : c <= 2965)
-                  : (c <= 2970 || (c < 2974
-                    ? c == 2972
-                    : c <= 2975)))
-                : (c <= 2980 || (c < 3006
-                  ? (c < 2990
-                    ? (c >= 2984 && c <= 2986)
-                    : c <= 3001)
-                  : (c <= 3010 || (c < 3018
-                    ? (c >= 3014 && c <= 3016)
-                    : c <= 3021)))))
-              : (c <= 3024 || (c < 3114
-                ? (c < 3072
-                  ? (c < 3046
-                    ? c == 3031
-                    : c <= 3055)
-                  : (c <= 3084 || (c < 3090
-                    ? (c >= 3086 && c <= 3088)
-                    : c <= 3112)))
-                : (c <= 3129 || (c < 3146
-                  ? (c < 3142
-                    ? (c >= 3132 && c <= 3140)
-                    : c <= 3144)
-                  : (c <= 3149 || (c < 3160
-                    ? (c >= 3157 && c <= 3158)
-                    : c <= 3162)))))))))
-          : (c <= 3165 || (c < 3430
-            ? (c < 3285
-              ? (c < 3218
-                ? (c < 3200
-                  ? (c < 3174
-                    ? (c >= 3168 && c <= 3171)
-                    : c <= 3183)
-                  : (c <= 3203 || (c < 3214
-                    ? (c >= 3205 && c <= 3212)
-                    : c <= 3216)))
-                : (c <= 3240 || (c < 3260
-                  ? (c < 3253
-                    ? (c >= 3242 && c <= 3251)
-                    : c <= 3257)
-                  : (c <= 3268 || (c < 3274
-                    ? (c >= 3270 && c <= 3272)
-                    : c <= 3277)))))
-              : (c <= 3286 || (c < 3342
-                ? (c < 3302
-                  ? (c < 3296
-                    ? (c >= 3293 && c <= 3294)
-                    : c <= 3299)
-                  : (c <= 3311 || (c < 3328
-                    ? (c >= 3313 && c <= 3314)
-                    : c <= 3340)))
-                : (c <= 3344 || (c < 3402
-                  ? (c < 3398
-                    ? (c >= 3346 && c <= 3396)
-                    : c <= 3400)
-                  : (c <= 3406 || (c < 3423
-                    ? (c >= 3412 && c <= 3415)
-                    : c <= 3427)))))))
-            : (c <= 3439 || (c < 3558
-              ? (c < 3517
-                ? (c < 3461
-                  ? (c < 3457
-                    ? (c >= 3450 && c <= 3455)
-                    : c <= 3459)
-                  : (c <= 3478 || (c < 3507
-                    ? (c >= 3482 && c <= 3505)
-                    : c <= 3515)))
-                : (c <= 3517 || (c < 3535
-                  ? (c < 3530
-                    ? (c >= 3520 && c <= 3526)
-                    : c <= 3530)
-                  : (c <= 3540 || (c < 3544
-                    ? c == 3542
-                    : c <= 3551)))))
-              : (c <= 3567 || (c < 3716
-                ? (c < 3648
-                  ? (c < 3585
-                    ? (c >= 3570 && c <= 3571)
-                    : c <= 3642)
-                  : (c <= 3662 || (c < 3713
-                    ? (c >= 3664 && c <= 3673)
-                    : c <= 3714)))
-                : (c <= 3716 || (c < 3749
-                  ? (c < 3724
-                    ? (c >= 3718 && c <= 3722)
-                    : c <= 3747)
-                  : (c <= 3749 || (c < 3776
-                    ? (c >= 3751 && c <= 3773)
-                    : c <= 3780)))))))))))))
-      : (c <= 3782 || (c < 8025
-        ? (c < 5888
-          ? (c < 4688
-            ? (c < 3953
-              ? (c < 3872
-                ? (c < 3804
-                  ? (c < 3792
-                    ? (c >= 3784 && c <= 3789)
-                    : c <= 3801)
-                  : (c <= 3807 || (c < 3864
-                    ? c == 3840
-                    : c <= 3865)))
-                : (c <= 3881 || (c < 3897
-                  ? (c < 3895
-                    ? c == 3893
-                    : c <= 3895)
-                  : (c <= 3897 || (c < 3913
-                    ? (c >= 3902 && c <= 3911)
-                    : c <= 3948)))))
-              : (c <= 3972 || (c < 4256
-                ? (c < 4038
-                  ? (c < 3993
-                    ? (c >= 3974 && c <= 3991)
-                    : c <= 4028)
-                  : (c <= 4038 || (c < 4176
-                    ? (c >= 4096 && c <= 4169)
-                    : c <= 4253)))
-                : (c <= 4293 || (c < 4304
-                  ? (c < 4301
-                    ? c == 4295
-                    : c <= 4301)
-                  : (c <= 4346 || (c < 4682
-                    ? (c >= 4348 && c <= 4680)
-                    : c <= 4685)))))))
-            : (c <= 4694 || (c < 4882
-              ? (c < 4786
-                ? (c < 4704
-                  ? (c < 4698
-                    ? c == 4696
-                    : c <= 4701)
-                  : (c <= 4744 || (c < 4752
-                    ? (c >= 4746 && c <= 4749)
-                    : c <= 4784)))
-                : (c <= 4789 || (c < 4802
-                  ? (c < 4800
-                    ? (c >= 4792 && c <= 4798)
-                    : c <= 4800)
-                  : (c <= 4805 || (c < 4824
-                    ? (c >= 4808 && c <= 4822)
-                    : c <= 4880)))))
-              : (c <= 4885 || (c < 5112
-                ? (c < 4969
-                  ? (c < 4957
-                    ? (c >= 4888 && c <= 4954)
-                    : c <= 4959)
-                  : (c <= 4977 || (c < 5024
-                    ? (c >= 4992 && c <= 5007)
-                    : c <= 5109)))
-                : (c <= 5117 || (c < 5761
-                  ? (c < 5743
-                    ? (c >= 5121 && c <= 5740)
-                    : c <= 5759)
-                  : (c <= 5786 || (c < 5870
-                    ? (c >= 5792 && c <= 5866)
-                    : c <= 5880)))))))))
-          : (c <= 5909 || (c < 6688
-            ? (c < 6176
-              ? (c < 6016
-                ? (c < 5984
-                  ? (c < 5952
-                    ? (c >= 5919 && c <= 5940)
-                    : c <= 5971)
-                  : (c <= 5996 || (c < 6002
-                    ? (c >= 5998 && c <= 6000)
-                    : c <= 6003)))
-                : (c <= 6099 || (c < 6112
-                  ? (c < 6108
-                    ? c == 6103
-                    : c <= 6109)
-                  : (c <= 6121 || (c < 6159
-                    ? (c >= 6155 && c <= 6157)
-                    : c <= 6169)))))
-              : (c <= 6264 || (c < 6470
-                ? (c < 6400
-                  ? (c < 6320
-                    ? (c >= 6272 && c <= 6314)
-                    : c <= 6389)
-                  : (c <= 6430 || (c < 6448
-                    ? (c >= 6432 && c <= 6443)
-                    : c <= 6459)))
-                : (c <= 6509 || (c < 6576
-                  ? (c < 6528
-                    ? (c >= 6512 && c <= 6516)
-                    : c <= 6571)
-                  : (c <= 6601 || (c < 6656
-                    ? (c >= 6608 && c <= 6618)
-                    : c <= 6683)))))))
-            : (c <= 6750 || (c < 7232
-              ? (c < 6847
-                ? (c < 6800
-                  ? (c < 6783
-                    ? (c >= 6752 && c <= 6780)
-                    : c <= 6793)
-                  : (c <= 6809 || (c < 6832
-                    ? c == 6823
-                    : c <= 6845)))
-                : (c <= 6862 || (c < 7019
-                  ? (c < 6992
-                    ? (c >= 6912 && c <= 6988)
-                    : c <= 7001)
-                  : (c <= 7027 || (c < 7168
-                    ? (c >= 7040 && c <= 7155)
-                    : c <= 7223)))))
-              : (c <= 7241 || (c < 7380
-                ? (c < 7312
-                  ? (c < 7296
-                    ? (c >= 7245 && c <= 7293)
-                    : c <= 7304)
-                  : (c <= 7354 || (c < 7376
-                    ? (c >= 7357 && c <= 7359)
-                    : c <= 7378)))
-                : (c <= 7418 || (c < 7968
-                  ? (c < 7960
-                    ? (c >= 7424 && c <= 7957)
-                    : c <= 7965)
-                  : (c <= 8005 || (c < 8016
-                    ? (c >= 8008 && c <= 8013)
-                    : c <= 8023)))))))))))
-        : (c <= 8025 || (c < 11720
-          ? (c < 8458
-            ? (c < 8178
-              ? (c < 8126
-                ? (c < 8031
-                  ? (c < 8029
-                    ? c == 8027
-                    : c <= 8029)
-                  : (c <= 8061 || (c < 8118
-                    ? (c >= 8064 && c <= 8116)
-                    : c <= 8124)))
-                : (c <= 8126 || (c < 8144
-                  ? (c < 8134
-                    ? (c >= 8130 && c <= 8132)
-                    : c <= 8140)
-                  : (c <= 8147 || (c < 8160
-                    ? (c >= 8150 && c <= 8155)
-                    : c <= 8172)))))
-              : (c <= 8180 || (c < 8336
-                ? (c < 8276
-                  ? (c < 8255
-                    ? (c >= 8182 && c <= 8188)
-                    : c <= 8256)
-                  : (c <= 8276 || (c < 8319
-                    ? c == 8305
-                    : c <= 8319)))
-                : (c <= 8348 || (c < 8421
-                  ? (c < 8417
-                    ? (c >= 8400 && c <= 8412)
-                    : c <= 8417)
-                  : (c <= 8432 || (c < 8455
-                    ? c == 8450
-                    : c <= 8455)))))))
-            : (c <= 8467 || (c < 11499
-              ? (c < 8490
-                ? (c < 8484
-                  ? (c < 8472
-                    ? c == 8469
-                    : c <= 8477)
-                  : (c <= 8484 || (c < 8488
-                    ? c == 8486
-                    : c <= 8488)))
-                : (c <= 8505 || (c < 8526
-                  ? (c < 8517
-                    ? (c >= 8508 && c <= 8511)
-                    : c <= 8521)
-                  : (c <= 8526 || (c < 11264
-                    ? (c >= 8544 && c <= 8584)
-                    : c <= 11492)))))
-              : (c <= 11507 || (c < 11647
-                ? (c < 11565
-                  ? (c < 11559
-                    ? (c >= 11520 && c <= 11557)
-                    : c <= 11559)
-                  : (c <= 11565 || (c < 11631
-                    ? (c >= 11568 && c <= 11623)
-                    : c <= 11631)))
-                : (c <= 11670 || (c < 11696
-                  ? (c < 11688
-                    ? (c >= 11680 && c <= 11686)
-                    : c <= 11694)
-                  : (c <= 11702 || (c < 11712
-                    ? (c >= 11704 && c <= 11710)
-                    : c <= 11718)))))))))
-          : (c <= 11726 || (c < 42623
-            ? (c < 12540
-              ? (c < 12337
-                ? (c < 11744
-                  ? (c < 11736
-                    ? (c >= 11728 && c <= 11734)
-                    : c <= 11742)
-                  : (c <= 11775 || (c < 12321
-                    ? (c >= 12293 && c <= 12295)
-                    : c <= 12335)))
-                : (c <= 12341 || (c < 12441
-                  ? (c < 12353
-                    ? (c >= 12344 && c <= 12348)
-                    : c <= 12438)
-                  : (c <= 12442 || (c < 12449
-                    ? (c >= 12445 && c <= 12447)
-                    : c <= 12538)))))
-              : (c <= 12543 || (c < 19968
-                ? (c < 12704
-                  ? (c < 12593
-                    ? (c >= 12549 && c <= 12591)
-                    : c <= 12686)
-                  : (c <= 12735 || (c < 13312
-                    ? (c >= 12784 && c <= 12799)
-                    : c <= 19903)))
-                : (c <= 42124 || (c < 42512
-                  ? (c < 42240
-                    ? (c >= 42192 && c <= 42237)
-                    : c <= 42508)
-                  : (c <= 42539 || (c < 42612
-                    ? (c >= 42560 && c <= 42607)
-                    : c <= 42621)))))))
-            : (c <= 42737 || (c < 43232
-              ? (c < 42965
-                ? (c < 42891
-                  ? (c < 42786
-                    ? (c >= 42775 && c <= 42783)
-                    : c <= 42888)
-                  : (c <= 42954 || (c < 42963
-                    ? (c >= 42960 && c <= 42961)
-                    : c <= 42963)))
-                : (c <= 42969 || (c < 43072
-                  ? (c < 43052
-                    ? (c >= 42994 && c <= 43047)
-                    : c <= 43052)
-                  : (c <= 43123 || (c < 43216
-                    ? (c >= 43136 && c <= 43205)
-                    : c <= 43225)))))
-              : (c <= 43255 || (c < 43471
-                ? (c < 43312
-                  ? (c < 43261
-                    ? c == 43259
-                    : c <= 43309)
-                  : (c <= 43347 || (c < 43392
-                    ? (c >= 43360 && c <= 43388)
-                    : c <= 43456)))
-                : (c <= 43481 || (c < 43584
-                  ? (c < 43520
-                    ? (c >= 43488 && c <= 43518)
-                    : c <= 43574)
-                  : (c <= 43597 || (c >= 43600 && c <= 43609)))))))))))))))
-    : (c <= 43638 || (c < 71453
-      ? (c < 67639
-        ? (c < 65345
-          ? (c < 64312
-            ? (c < 43888
-              ? (c < 43785
-                ? (c < 43744
-                  ? (c < 43739
-                    ? (c >= 43642 && c <= 43714)
-                    : c <= 43741)
-                  : (c <= 43759 || (c < 43777
-                    ? (c >= 43762 && c <= 43766)
-                    : c <= 43782)))
-                : (c <= 43790 || (c < 43816
-                  ? (c < 43808
-                    ? (c >= 43793 && c <= 43798)
-                    : c <= 43814)
-                  : (c <= 43822 || (c < 43868
-                    ? (c >= 43824 && c <= 43866)
-                    : c <= 43881)))))
-              : (c <= 44010 || (c < 63744
-                ? (c < 44032
-                  ? (c < 44016
-                    ? (c >= 44012 && c <= 44013)
-                    : c <= 44025)
-                  : (c <= 55203 || (c < 55243
-                    ? (c >= 55216 && c <= 55238)
-                    : c <= 55291)))
-                : (c <= 64109 || (c < 64275
-                  ? (c < 64256
-                    ? (c >= 64112 && c <= 64217)
-                    : c <= 64262)
-                  : (c <= 64279 || (c < 64298
-                    ? (c >= 64285 && c <= 64296)
-                    : c <= 64310)))))))
-            : (c <= 64316 || (c < 65075
-              ? (c < 64612
-                ? (c < 64323
-                  ? (c < 64320
-                    ? c == 64318
-                    : c <= 64321)
-                  : (c <= 64324 || (c < 64467
-                    ? (c >= 64326 && c <= 64433)
-                    : c <= 64605)))
-                : (c <= 64829 || (c < 65008
-                  ? (c < 64914
-                    ? (c >= 64848 && c <= 64911)
-                    : c <= 64967)
-                  : (c <= 65017 || (c < 65056
-                    ? (c >= 65024 && c <= 65039)
-                    : c <= 65071)))))
-              : (c <= 65076 || (c < 65147
-                ? (c < 65139
-                  ? (c < 65137
-                    ? (c >= 65101 && c <= 65103)
-                    : c <= 65137)
-                  : (c <= 65139 || (c < 65145
-                    ? c == 65143
-                    : c <= 65145)))
-                : (c <= 65147 || (c < 65296
-                  ? (c < 65151
-                    ? c == 65149
-                    : c <= 65276)
-                  : (c <= 65305 || (c < 65343
-                    ? (c >= 65313 && c <= 65338)
-                    : c <= 65343)))))))))
-          : (c <= 65370 || (c < 66513
-            ? (c < 65664
-              ? (c < 65536
-                ? (c < 65482
-                  ? (c < 65474
-                    ? (c >= 65382 && c <= 65470)
-                    : c <= 65479)
-                  : (c <= 65487 || (c < 65498
-                    ? (c >= 65490 && c <= 65495)
-                    : c <= 65500)))
-                : (c <= 65547 || (c < 65596
-                  ? (c < 65576
-                    ? (c >= 65549 && c <= 65574)
-                    : c <= 65594)
-                  : (c <= 65597 || (c < 65616
-                    ? (c >= 65599 && c <= 65613)
-                    : c <= 65629)))))
-              : (c <= 65786 || (c < 66304
-                ? (c < 66176
-                  ? (c < 66045
-                    ? (c >= 65856 && c <= 65908)
-                    : c <= 66045)
-                  : (c <= 66204 || (c < 66272
-                    ? (c >= 66208 && c <= 66256)
-                    : c <= 66272)))
-                : (c <= 66335 || (c < 66432
-                  ? (c < 66384
-                    ? (c >= 66349 && c <= 66378)
-                    : c <= 66426)
-                  : (c <= 66461 || (c < 66504
-                    ? (c >= 66464 && c <= 66499)
-                    : c <= 66511)))))))
-            : (c <= 66517 || (c < 66979
-              ? (c < 66864
-                ? (c < 66736
-                  ? (c < 66720
-                    ? (c >= 66560 && c <= 66717)
-                    : c <= 66729)
-                  : (c <= 66771 || (c < 66816
-                    ? (c >= 66776 && c <= 66811)
-                    : c <= 66855)))
-                : (c <= 66915 || (c < 66956
-                  ? (c < 66940
-                    ? (c >= 66928 && c <= 66938)
-                    : c <= 66954)
-                  : (c <= 66962 || (c < 66967
-                    ? (c >= 66964 && c <= 66965)
-                    : c <= 66977)))))
-              : (c <= 66993 || (c < 67456
-                ? (c < 67072
-                  ? (c < 67003
-                    ? (c >= 66995 && c <= 67001)
-                    : c <= 67004)
-                  : (c <= 67382 || (c < 67424
-                    ? (c >= 67392 && c <= 67413)
-                    : c <= 67431)))
-                : (c <= 67461 || (c < 67584
-                  ? (c < 67506
-                    ? (c >= 67463 && c <= 67504)
-                    : c <= 67514)
-                  : (c <= 67589 || (c < 67594
-                    ? c == 67592
-                    : c <= 67637)))))))))))
-        : (c <= 67640 || (c < 69956
-          ? (c < 68448
-            ? (c < 68101
-              ? (c < 67828
-                ? (c < 67680
-                  ? (c < 67647
-                    ? c == 67644
-                    : c <= 67669)
-                  : (c <= 67702 || (c < 67808
-                    ? (c >= 67712 && c <= 67742)
-                    : c <= 67826)))
-                : (c <= 67829 || (c < 67968
-                  ? (c < 67872
-                    ? (c >= 67840 && c <= 67861)
-                    : c <= 67897)
-                  : (c <= 68023 || (c < 68096
-                    ? (c >= 68030 && c <= 68031)
-                    : c <= 68099)))))
-              : (c <= 68102 || (c < 68192
-                ? (c < 68121
-                  ? (c < 68117
-                    ? (c >= 68108 && c <= 68115)
-                    : c <= 68119)
-                  : (c <= 68149 || (c < 68159
-                    ? (c >= 68152 && c <= 68154)
-                    : c <= 68159)))
-                : (c <= 68220 || (c < 68297
-                  ? (c < 68288
-                    ? (c >= 68224 && c <= 68252)
-                    : c <= 68295)
-                  : (c <= 68326 || (c < 68416
-                    ? (c >= 68352 && c <= 68405)
-                    : c <= 68437)))))))
-            : (c <= 68466 || (c < 69424
-              ? (c < 68912
-                ? (c < 68736
-                  ? (c < 68608
-                    ? (c >= 68480 && c <= 68497)
-                    : c <= 68680)
-                  : (c <= 68786 || (c < 68864
-                    ? (c >= 68800 && c <= 68850)
-                    : c <= 68903)))
-                : (c <= 68921 || (c < 69296
-                  ? (c < 69291
-                    ? (c >= 69248 && c <= 69289)
-                    : c <= 69292)
-                  : (c <= 69297 || (c < 69415
-                    ? (c >= 69376 && c <= 69404)
-                    : c <= 69415)))))
-              : (c <= 69456 || (c < 69759
-                ? (c < 69600
-                  ? (c < 69552
-                    ? (c >= 69488 && c <= 69509)
-                    : c <= 69572)
-                  : (c <= 69622 || (c < 69734
-                    ? (c >= 69632 && c <= 69702)
-                    : c <= 69749)))
-                : (c <= 69818 || (c < 69872
-                  ? (c < 69840
-                    ? c == 69826
-                    : c <= 69864)
-                  : (c <= 69881 || (c < 69942
-                    ? (c >= 69888 && c <= 69940)
-                    : c <= 69951)))))))))
-          : (c <= 69959 || (c < 70459
-            ? (c < 70282
-              ? (c < 70108
-                ? (c < 70016
-                  ? (c < 70006
-                    ? (c >= 69968 && c <= 70003)
-                    : c <= 70006)
-                  : (c <= 70084 || (c < 70094
-                    ? (c >= 70089 && c <= 70092)
-                    : c <= 70106)))
-                : (c <= 70108 || (c < 70206
-                  ? (c < 70163
-                    ? (c >= 70144 && c <= 70161)
-                    : c <= 70199)
-                  : (c <= 70206 || (c < 70280
-                    ? (c >= 70272 && c <= 70278)
-                    : c <= 70280)))))
-              : (c <= 70285 || (c < 70405
-                ? (c < 70320
-                  ? (c < 70303
-                    ? (c >= 70287 && c <= 70301)
-                    : c <= 70312)
-                  : (c <= 70378 || (c < 70400
-                    ? (c >= 70384 && c <= 70393)
-                    : c <= 70403)))
-                : (c <= 70412 || (c < 70442
-                  ? (c < 70419
-                    ? (c >= 70415 && c <= 70416)
-                    : c <= 70440)
-                  : (c <= 70448 || (c < 70453
-                    ? (c >= 70450 && c <= 70451)
-                    : c <= 70457)))))))
-            : (c <= 70468 || (c < 70855
-              ? (c < 70502
-                ? (c < 70480
-                  ? (c < 70475
-                    ? (c >= 70471 && c <= 70472)
-                    : c <= 70477)
-                  : (c <= 70480 || (c < 70493
-                    ? c == 70487
-                    : c <= 70499)))
-                : (c <= 70508 || (c < 70736
-                  ? (c < 70656
-                    ? (c >= 70512 && c <= 70516)
-                    : c <= 70730)
-                  : (c <= 70745 || (c < 70784
-                    ? (c >= 70750 && c <= 70753)
-                    : c <= 70853)))))
-              : (c <= 70855 || (c < 71236
-                ? (c < 71096
-                  ? (c < 71040
-                    ? (c >= 70864 && c <= 70873)
-                    : c <= 71093)
-                  : (c <= 71104 || (c < 71168
-                    ? (c >= 71128 && c <= 71133)
-                    : c <= 71232)))
-                : (c <= 71236 || (c < 71360
-                  ? (c < 71296
-                    ? (c >= 71248 && c <= 71257)
-                    : c <= 71352)
-                  : (c <= 71369 || (c >= 71424 && c <= 71450)))))))))))))
-      : (c <= 71467 || (c < 119973
-        ? (c < 77824
-          ? (c < 72760
-            ? (c < 72016
-              ? (c < 71945
-                ? (c < 71680
-                  ? (c < 71488
-                    ? (c >= 71472 && c <= 71481)
-                    : c <= 71494)
-                  : (c <= 71738 || (c < 71935
-                    ? (c >= 71840 && c <= 71913)
-                    : c <= 71942)))
-                : (c <= 71945 || (c < 71960
-                  ? (c < 71957
-                    ? (c >= 71948 && c <= 71955)
-                    : c <= 71958)
-                  : (c <= 71989 || (c < 71995
-                    ? (c >= 71991 && c <= 71992)
-                    : c <= 72003)))))
-              : (c <= 72025 || (c < 72263
-                ? (c < 72154
-                  ? (c < 72106
-                    ? (c >= 72096 && c <= 72103)
-                    : c <= 72151)
-                  : (c <= 72161 || (c < 72192
-                    ? (c >= 72163 && c <= 72164)
-                    : c <= 72254)))
-                : (c <= 72263 || (c < 72368
-                  ? (c < 72349
-                    ? (c >= 72272 && c <= 72345)
-                    : c <= 72349)
-                  : (c <= 72440 || (c < 72714
-                    ? (c >= 72704 && c <= 72712)
-                    : c <= 72758)))))))
-            : (c <= 72768 || (c < 73056
-              ? (c < 72968
-                ? (c < 72850
-                  ? (c < 72818
-                    ? (c >= 72784 && c <= 72793)
-                    : c <= 72847)
-                  : (c <= 72871 || (c < 72960
-                    ? (c >= 72873 && c <= 72886)
-                    : c <= 72966)))
-                : (c <= 72969 || (c < 73020
-                  ? (c < 73018
-                    ? (c >= 72971 && c <= 73014)
-                    : c <= 73018)
-                  : (c <= 73021 || (c < 73040
-                    ? (c >= 73023 && c <= 73031)
-                    : c <= 73049)))))
-              : (c <= 73061 || (c < 73440
-                ? (c < 73104
-                  ? (c < 73066
-                    ? (c >= 73063 && c <= 73064)
-                    : c <= 73102)
-                  : (c <= 73105 || (c < 73120
-                    ? (c >= 73107 && c <= 73112)
-                    : c <= 73129)))
-                : (c <= 73462 || (c < 74752
-                  ? (c < 73728
-                    ? c == 73648
-                    : c <= 74649)
-                  : (c <= 74862 || (c < 77712
-                    ? (c >= 74880 && c <= 75075)
-                    : c <= 77808)))))))))
-          : (c <= 78894 || (c < 110576
-            ? (c < 93027
-              ? (c < 92864
-                ? (c < 92736
-                  ? (c < 92160
-                    ? (c >= 82944 && c <= 83526)
-                    : c <= 92728)
-                  : (c <= 92766 || (c < 92784
-                    ? (c >= 92768 && c <= 92777)
-                    : c <= 92862)))
-                : (c <= 92873 || (c < 92928
-                  ? (c < 92912
-                    ? (c >= 92880 && c <= 92909)
-                    : c <= 92916)
-                  : (c <= 92982 || (c < 93008
-                    ? (c >= 92992 && c <= 92995)
-                    : c <= 93017)))))
-              : (c <= 93047 || (c < 94176
-                ? (c < 93952
-                  ? (c < 93760
-                    ? (c >= 93053 && c <= 93071)
-                    : c <= 93823)
-                  : (c <= 94026 || (c < 94095
-                    ? (c >= 94031 && c <= 94087)
-                    : c <= 94111)))
-                : (c <= 94177 || (c < 94208
-                  ? (c < 94192
-                    ? (c >= 94179 && c <= 94180)
-                    : c <= 94193)
-                  : (c <= 100343 || (c < 101632
-                    ? (c >= 100352 && c <= 101589)
-                    : c <= 101640)))))))
-            : (c <= 110579 || (c < 118528
-              ? (c < 110960
-                ? (c < 110592
-                  ? (c < 110589
-                    ? (c >= 110581 && c <= 110587)
-                    : c <= 110590)
-                  : (c <= 110882 || (c < 110948
-                    ? (c >= 110928 && c <= 110930)
-                    : c <= 110951)))
-                : (c <= 111355 || (c < 113792
-                  ? (c < 113776
-                    ? (c >= 113664 && c <= 113770)
-                    : c <= 113788)
-                  : (c <= 113800 || (c < 113821
-                    ? (c >= 113808 && c <= 113817)
-                    : c <= 113822)))))
-              : (c <= 118573 || (c < 119210
-                ? (c < 119149
-                  ? (c < 119141
-                    ? (c >= 118576 && c <= 118598)
-                    : c <= 119145)
-                  : (c <= 119154 || (c < 119173
-                    ? (c >= 119163 && c <= 119170)
-                    : c <= 119179)))
-                : (c <= 119213 || (c < 119894
-                  ? (c < 119808
-                    ? (c >= 119362 && c <= 119364)
-                    : c <= 119892)
-                  : (c <= 119964 || (c < 119970
-                    ? (c >= 119966 && c <= 119967)
-                    : c <= 119970)))))))))))
-        : (c <= 119974 || (c < 124912
-          ? (c < 120746
-            ? (c < 120134
-              ? (c < 120071
-                ? (c < 119995
-                  ? (c < 119982
-                    ? (c >= 119977 && c <= 119980)
-                    : c <= 119993)
-                  : (c <= 119995 || (c < 120005
-                    ? (c >= 119997 && c <= 120003)
-                    : c <= 120069)))
-                : (c <= 120074 || (c < 120094
-                  ? (c < 120086
-                    ? (c >= 120077 && c <= 120084)
-                    : c <= 120092)
-                  : (c <= 120121 || (c < 120128
-                    ? (c >= 120123 && c <= 120126)
-                    : c <= 120132)))))
-              : (c <= 120134 || (c < 120572
-                ? (c < 120488
-                  ? (c < 120146
-                    ? (c >= 120138 && c <= 120144)
-                    : c <= 120485)
-                  : (c <= 120512 || (c < 120540
-                    ? (c >= 120514 && c <= 120538)
-                    : c <= 120570)))
-                : (c <= 120596 || (c < 120656
-                  ? (c < 120630
-                    ? (c >= 120598 && c <= 120628)
-                    : c <= 120654)
-                  : (c <= 120686 || (c < 120714
-                    ? (c >= 120688 && c <= 120712)
-                    : c <= 120744)))))))
-            : (c <= 120770 || (c < 122907
-              ? (c < 121476
-                ? (c < 121344
-                  ? (c < 120782
-                    ? (c >= 120772 && c <= 120779)
-                    : c <= 120831)
-                  : (c <= 121398 || (c < 121461
-                    ? (c >= 121403 && c <= 121452)
-                    : c <= 121461)))
-                : (c <= 121476 || (c < 122624
-                  ? (c < 121505
-                    ? (c >= 121499 && c <= 121503)
-                    : c <= 121519)
-                  : (c <= 122654 || (c < 122888
-                    ? (c >= 122880 && c <= 122886)
-                    : c <= 122904)))))
-              : (c <= 122913 || (c < 123214
-                ? (c < 123136
-                  ? (c < 122918
-                    ? (c >= 122915 && c <= 122916)
-                    : c <= 122922)
-                  : (c <= 123180 || (c < 123200
-                    ? (c >= 123184 && c <= 123197)
-                    : c <= 123209)))
-                : (c <= 123214 || (c < 124896
-                  ? (c < 123584
-                    ? (c >= 123536 && c <= 123566)
-                    : c <= 123641)
-                  : (c <= 124902 || (c < 124909
-                    ? (c >= 124904 && c <= 124907)
-                    : c <= 124910)))))))))
-          : (c <= 124926 || (c < 126557
-            ? (c < 126521
-              ? (c < 126469
-                ? (c < 125184
-                  ? (c < 125136
-                    ? (c >= 124928 && c <= 125124)
-                    : c <= 125142)
-                  : (c <= 125259 || (c < 126464
-                    ? (c >= 125264 && c <= 125273)
-                    : c <= 126467)))
-                : (c <= 126495 || (c < 126503
-                  ? (c < 126500
-                    ? (c >= 126497 && c <= 126498)
-                    : c <= 126500)
-                  : (c <= 126503 || (c < 126516
-                    ? (c >= 126505 && c <= 126514)
-                    : c <= 126519)))))
-              : (c <= 126521 || (c < 126541
-                ? (c < 126535
-                  ? (c < 126530
-                    ? c == 126523
-                    : c <= 126530)
-                  : (c <= 126535 || (c < 126539
-                    ? c == 126537
-                    : c <= 126539)))
-                : (c <= 126543 || (c < 126551
-                  ? (c < 126548
-                    ? (c >= 126545 && c <= 126546)
-                    : c <= 126548)
-                  : (c <= 126551 || (c < 126555
-                    ? c == 126553
-                    : c <= 126555)))))))
-            : (c <= 126557 || (c < 126629
-              ? (c < 126580
-                ? (c < 126564
-                  ? (c < 126561
-                    ? c == 126559
-                    : c <= 126562)
-                  : (c <= 126564 || (c < 126572
-                    ? (c >= 126567 && c <= 126570)
-                    : c <= 126578)))
-                : (c <= 126583 || (c < 126592
-                  ? (c < 126590
-                    ? (c >= 126585 && c <= 126588)
-                    : c <= 126590)
-                  : (c <= 126601 || (c < 126625
-                    ? (c >= 126603 && c <= 126619)
-                    : c <= 126627)))))
-              : (c <= 126633 || (c < 178208
-                ? (c < 131072
-                  ? (c < 130032
-                    ? (c >= 126635 && c <= 126651)
-                    : c <= 130041)
-                  : (c <= 173791 || (c < 177984
-                    ? (c >= 173824 && c <= 177976)
-                    : c <= 178205)))
-                : (c <= 183969 || (c < 196608
-                  ? (c < 194560
-                    ? (c >= 183984 && c <= 191456)
-                    : c <= 195101)
-                  : (c <= 201546 || (c >= 917760 && c <= 917999)))))))))))))))));
-}
+static TSCharacterRange sym_number_literal_character_set_5[] = {
+  {'.', '.'}, {'0', '9'}, {'B', 'B'}, {'D', 'D'}, {'F', 'F'}, {'L', 'L'}, {'U', 'U'}, {'W', 'W'},
+  {'b', 'b'}, {'d', 'd'}, {'f', 'f'}, {'l', 'l'}, {'u', 'u'}, {'w', 'w'},
+};
 
-static inline bool sym_identifier_character_set_4(int32_t c) {
-  return (c < 43600
-    ? (c < 3776
-      ? (c < 2738
-        ? (c < 1984
-          ? (c < 910
-            ? (c < 216
-              ? (c < 'a'
-                ? (c < '9'
-                  ? (c < '0'
-                    ? c == '$'
-                    : c <= '7')
-                  : (c <= '9' || (c < '_'
-                    ? (c >= 'A' && c <= 'Z')
-                    : c <= '_')))
-                : (c <= 'z' || (c < 183
-                  ? (c < 181
-                    ? c == 170
-                    : c <= 181)
-                  : (c <= 183 || (c < 192
-                    ? c == 186
-                    : c <= 214)))))
-              : (c <= 246 || (c < 768
-                ? (c < 736
-                  ? (c < 710
-                    ? (c >= 248 && c <= 705)
-                    : c <= 721)
-                  : (c <= 740 || (c < 750
-                    ? c == 748
-                    : c <= 750)))
-                : (c <= 884 || (c < 895
-                  ? (c < 891
-                    ? (c >= 886 && c <= 887)
-                    : c <= 893)
-                  : (c <= 895 || (c < 908
-                    ? (c >= 902 && c <= 906)
-                    : c <= 908)))))))
-            : (c <= 929 || (c < 1479
-              ? (c < 1369
-                ? (c < 1155
-                  ? (c < 1015
-                    ? (c >= 931 && c <= 1013)
-                    : c <= 1153)
-                  : (c <= 1159 || (c < 1329
-                    ? (c >= 1162 && c <= 1327)
-                    : c <= 1366)))
-                : (c <= 1369 || (c < 1471
-                  ? (c < 1425
-                    ? (c >= 1376 && c <= 1416)
-                    : c <= 1469)
-                  : (c <= 1471 || (c < 1476
-                    ? (c >= 1473 && c <= 1474)
-                    : c <= 1477)))))
-              : (c <= 1479 || (c < 1749
-                ? (c < 1552
-                  ? (c < 1519
-                    ? (c >= 1488 && c <= 1514)
-                    : c <= 1522)
-                  : (c <= 1562 || (c < 1646
-                    ? (c >= 1568 && c <= 1641)
-                    : c <= 1747)))
-                : (c <= 1756 || (c < 1791
-                  ? (c < 1770
-                    ? (c >= 1759 && c <= 1768)
-                    : c <= 1788)
-                  : (c <= 1791 || (c < 1869
-                    ? (c >= 1808 && c <= 1866)
-                    : c <= 1969)))))))))
-          : (c <= 2037 || (c < 2534
-            ? (c < 2437
-              ? (c < 2160
-                ? (c < 2048
-                  ? (c < 2045
-                    ? c == 2042
-                    : c <= 2045)
-                  : (c <= 2093 || (c < 2144
-                    ? (c >= 2112 && c <= 2139)
-                    : c <= 2154)))
-                : (c <= 2183 || (c < 2275
-                  ? (c < 2200
-                    ? (c >= 2185 && c <= 2190)
-                    : c <= 2273)
-                  : (c <= 2403 || (c < 2417
-                    ? (c >= 2406 && c <= 2415)
-                    : c <= 2435)))))
-              : (c <= 2444 || (c < 2492
-                ? (c < 2474
-                  ? (c < 2451
-                    ? (c >= 2447 && c <= 2448)
-                    : c <= 2472)
-                  : (c <= 2480 || (c < 2486
-                    ? c == 2482
-                    : c <= 2489)))
-                : (c <= 2500 || (c < 2519
-                  ? (c < 2507
-                    ? (c >= 2503 && c <= 2504)
-                    : c <= 2510)
-                  : (c <= 2519 || (c < 2527
-                    ? (c >= 2524 && c <= 2525)
-                    : c <= 2531)))))))
-            : (c <= 2545 || (c < 2622
-              ? (c < 2579
-                ? (c < 2561
-                  ? (c < 2558
-                    ? c == 2556
-                    : c <= 2558)
-                  : (c <= 2563 || (c < 2575
-                    ? (c >= 2565 && c <= 2570)
-                    : c <= 2576)))
-                : (c <= 2600 || (c < 2613
-                  ? (c < 2610
-                    ? (c >= 2602 && c <= 2608)
-                    : c <= 2611)
-                  : (c <= 2614 || (c < 2620
-                    ? (c >= 2616 && c <= 2617)
-                    : c <= 2620)))))
-              : (c <= 2626 || (c < 2662
-                ? (c < 2641
-                  ? (c < 2635
-                    ? (c >= 2631 && c <= 2632)
-                    : c <= 2637)
-                  : (c <= 2641 || (c < 2654
-                    ? (c >= 2649 && c <= 2652)
-                    : c <= 2654)))
-                : (c <= 2677 || (c < 2703
-                  ? (c < 2693
-                    ? (c >= 2689 && c <= 2691)
-                    : c <= 2701)
-                  : (c <= 2705 || (c < 2730
-                    ? (c >= 2707 && c <= 2728)
-                    : c <= 2736)))))))))))
-        : (c <= 2739 || (c < 3160
-          ? (c < 2946
-            ? (c < 2835
-              ? (c < 2784
-                ? (c < 2759
-                  ? (c < 2748
-                    ? (c >= 2741 && c <= 2745)
-                    : c <= 2757)
-                  : (c <= 2761 || (c < 2768
-                    ? (c >= 2763 && c <= 2765)
-                    : c <= 2768)))
-                : (c <= 2787 || (c < 2817
-                  ? (c < 2809
-                    ? (c >= 2790 && c <= 2799)
-                    : c <= 2815)
-                  : (c <= 2819 || (c < 2831
-                    ? (c >= 2821 && c <= 2828)
-                    : c <= 2832)))))
-              : (c <= 2856 || (c < 2891
-                ? (c < 2869
-                  ? (c < 2866
-                    ? (c >= 2858 && c <= 2864)
-                    : c <= 2867)
-                  : (c <= 2873 || (c < 2887
-                    ? (c >= 2876 && c <= 2884)
-                    : c <= 2888)))
-                : (c <= 2893 || (c < 2911
-                  ? (c < 2908
-                    ? (c >= 2901 && c <= 2903)
-                    : c <= 2909)
-                  : (c <= 2915 || (c < 2929
-                    ? (c >= 2918 && c <= 2927)
-                    : c <= 2929)))))))
-            : (c <= 2947 || (c < 3018
-              ? (c < 2974
-                ? (c < 2962
-                  ? (c < 2958
-                    ? (c >= 2949 && c <= 2954)
-                    : c <= 2960)
-                  : (c <= 2965 || (c < 2972
-                    ? (c >= 2969 && c <= 2970)
-                    : c <= 2972)))
-                : (c <= 2975 || (c < 2990
-                  ? (c < 2984
-                    ? (c >= 2979 && c <= 2980)
-                    : c <= 2986)
-                  : (c <= 3001 || (c < 3014
-                    ? (c >= 3006 && c <= 3010)
-                    : c <= 3016)))))
-              : (c <= 3021 || (c < 3090
-                ? (c < 3046
-                  ? (c < 3031
-                    ? c == 3024
-                    : c <= 3031)
-                  : (c <= 3055 || (c < 3086
-                    ? (c >= 3072 && c <= 3084)
-                    : c <= 3088)))
-                : (c <= 3112 || (c < 3142
-                  ? (c < 3132
-                    ? (c >= 3114 && c <= 3129)
-                    : c <= 3140)
-                  : (c <= 3144 || (c < 3157
-                    ? (c >= 3146 && c <= 3149)
-                    : c <= 3158)))))))))
-          : (c <= 3162 || (c < 3423
-            ? (c < 3274
-              ? (c < 3214
-                ? (c < 3174
-                  ? (c < 3168
-                    ? c == 3165
-                    : c <= 3171)
-                  : (c <= 3183 || (c < 3205
-                    ? (c >= 3200 && c <= 3203)
-                    : c <= 3212)))
-                : (c <= 3216 || (c < 3253
-                  ? (c < 3242
-                    ? (c >= 3218 && c <= 3240)
-                    : c <= 3251)
-                  : (c <= 3257 || (c < 3270
-                    ? (c >= 3260 && c <= 3268)
-                    : c <= 3272)))))
-              : (c <= 3277 || (c < 3328
-                ? (c < 3296
-                  ? (c < 3293
-                    ? (c >= 3285 && c <= 3286)
-                    : c <= 3294)
-                  : (c <= 3299 || (c < 3313
-                    ? (c >= 3302 && c <= 3311)
-                    : c <= 3314)))
-                : (c <= 3340 || (c < 3398
-                  ? (c < 3346
-                    ? (c >= 3342 && c <= 3344)
-                    : c <= 3396)
-                  : (c <= 3400 || (c < 3412
-                    ? (c >= 3402 && c <= 3406)
-                    : c <= 3415)))))))
-            : (c <= 3427 || (c < 3544
-              ? (c < 3507
-                ? (c < 3457
-                  ? (c < 3450
-                    ? (c >= 3430 && c <= 3439)
-                    : c <= 3455)
-                  : (c <= 3459 || (c < 3482
-                    ? (c >= 3461 && c <= 3478)
-                    : c <= 3505)))
-                : (c <= 3515 || (c < 3530
-                  ? (c < 3520
-                    ? c == 3517
-                    : c <= 3526)
-                  : (c <= 3530 || (c < 3542
-                    ? (c >= 3535 && c <= 3540)
-                    : c <= 3542)))))
-              : (c <= 3551 || (c < 3713
-                ? (c < 3585
-                  ? (c < 3570
-                    ? (c >= 3558 && c <= 3567)
-                    : c <= 3571)
-                  : (c <= 3642 || (c < 3664
-                    ? (c >= 3648 && c <= 3662)
-                    : c <= 3673)))
-                : (c <= 3714 || (c < 3724
-                  ? (c < 3718
-                    ? c == 3716
-                    : c <= 3722)
-                  : (c <= 3747 || (c < 3751
-                    ? c == 3749
-                    : c <= 3773)))))))))))))
-      : (c <= 3780 || (c < 8016
-        ? (c < 5870
-          ? (c < 4682
-            ? (c < 3913
-              ? (c < 3864
-                ? (c < 3792
-                  ? (c < 3784
-                    ? c == 3782
-                    : c <= 3789)
-                  : (c <= 3801 || (c < 3840
-                    ? (c >= 3804 && c <= 3807)
-                    : c <= 3840)))
-                : (c <= 3865 || (c < 3895
-                  ? (c < 3893
-                    ? (c >= 3872 && c <= 3881)
-                    : c <= 3893)
-                  : (c <= 3895 || (c < 3902
-                    ? c == 3897
-                    : c <= 3911)))))
-              : (c <= 3948 || (c < 4176
-                ? (c < 3993
-                  ? (c < 3974
-                    ? (c >= 3953 && c <= 3972)
-                    : c <= 3991)
-                  : (c <= 4028 || (c < 4096
-                    ? c == 4038
-                    : c <= 4169)))
-                : (c <= 4253 || (c < 4301
-                  ? (c < 4295
-                    ? (c >= 4256 && c <= 4293)
-                    : c <= 4295)
-                  : (c <= 4301 || (c < 4348
-                    ? (c >= 4304 && c <= 4346)
-                    : c <= 4680)))))))
-            : (c <= 4685 || (c < 4824
-              ? (c < 4752
-                ? (c < 4698
-                  ? (c < 4696
-                    ? (c >= 4688 && c <= 4694)
-                    : c <= 4696)
-                  : (c <= 4701 || (c < 4746
-                    ? (c >= 4704 && c <= 4744)
-                    : c <= 4749)))
-                : (c <= 4784 || (c < 4800
-                  ? (c < 4792
-                    ? (c >= 4786 && c <= 4789)
-                    : c <= 4798)
-                  : (c <= 4800 || (c < 4808
-                    ? (c >= 4802 && c <= 4805)
-                    : c <= 4822)))))
-              : (c <= 4880 || (c < 5024
-                ? (c < 4957
-                  ? (c < 4888
-                    ? (c >= 4882 && c <= 4885)
-                    : c <= 4954)
-                  : (c <= 4959 || (c < 4992
-                    ? (c >= 4969 && c <= 4977)
-                    : c <= 5007)))
-                : (c <= 5109 || (c < 5743
-                  ? (c < 5121
-                    ? (c >= 5112 && c <= 5117)
-                    : c <= 5740)
-                  : (c <= 5759 || (c < 5792
-                    ? (c >= 5761 && c <= 5786)
-                    : c <= 5866)))))))))
-          : (c <= 5880 || (c < 6656
-            ? (c < 6159
-              ? (c < 6002
-                ? (c < 5952
-                  ? (c < 5919
-                    ? (c >= 5888 && c <= 5909)
-                    : c <= 5940)
-                  : (c <= 5971 || (c < 5998
-                    ? (c >= 5984 && c <= 5996)
-                    : c <= 6000)))
-                : (c <= 6003 || (c < 6108
-                  ? (c < 6103
-                    ? (c >= 6016 && c <= 6099)
-                    : c <= 6103)
-                  : (c <= 6109 || (c < 6155
-                    ? (c >= 6112 && c <= 6121)
-                    : c <= 6157)))))
-              : (c <= 6169 || (c < 6448
-                ? (c < 6320
-                  ? (c < 6272
-                    ? (c >= 6176 && c <= 6264)
-                    : c <= 6314)
-                  : (c <= 6389 || (c < 6432
-                    ? (c >= 6400 && c <= 6430)
-                    : c <= 6443)))
-                : (c <= 6459 || (c < 6528
-                  ? (c < 6512
-                    ? (c >= 6470 && c <= 6509)
-                    : c <= 6516)
-                  : (c <= 6571 || (c < 6608
-                    ? (c >= 6576 && c <= 6601)
-                    : c <= 6618)))))))
-            : (c <= 6683 || (c < 7168
-              ? (c < 6832
-                ? (c < 6783
-                  ? (c < 6752
-                    ? (c >= 6688 && c <= 6750)
-                    : c <= 6780)
-                  : (c <= 6793 || (c < 6823
-                    ? (c >= 6800 && c <= 6809)
-                    : c <= 6823)))
-                : (c <= 6845 || (c < 6992
-                  ? (c < 6912
-                    ? (c >= 6847 && c <= 6862)
-                    : c <= 6988)
-                  : (c <= 7001 || (c < 7040
-                    ? (c >= 7019 && c <= 7027)
-                    : c <= 7155)))))
-              : (c <= 7223 || (c < 7376
-                ? (c < 7296
-                  ? (c < 7245
-                    ? (c >= 7232 && c <= 7241)
-                    : c <= 7293)
-                  : (c <= 7304 || (c < 7357
-                    ? (c >= 7312 && c <= 7354)
-                    : c <= 7359)))
-                : (c <= 7378 || (c < 7960
-                  ? (c < 7424
-                    ? (c >= 7380 && c <= 7418)
-                    : c <= 7957)
-                  : (c <= 7965 || (c < 8008
-                    ? (c >= 7968 && c <= 8005)
-                    : c <= 8013)))))))))))
-        : (c <= 8023 || (c < 11712
-          ? (c < 8455
-            ? (c < 8160
-              ? (c < 8118
-                ? (c < 8029
-                  ? (c < 8027
-                    ? c == 8025
-                    : c <= 8027)
-                  : (c <= 8029 || (c < 8064
-                    ? (c >= 8031 && c <= 8061)
-                    : c <= 8116)))
-                : (c <= 8124 || (c < 8134
-                  ? (c < 8130
-                    ? c == 8126
-                    : c <= 8132)
-                  : (c <= 8140 || (c < 8150
-                    ? (c >= 8144 && c <= 8147)
-                    : c <= 8155)))))
-              : (c <= 8172 || (c < 8319
-                ? (c < 8255
-                  ? (c < 8182
-                    ? (c >= 8178 && c <= 8180)
-                    : c <= 8188)
-                  : (c <= 8256 || (c < 8305
-                    ? c == 8276
-                    : c <= 8305)))
-                : (c <= 8319 || (c < 8417
-                  ? (c < 8400
-                    ? (c >= 8336 && c <= 8348)
-                    : c <= 8412)
-                  : (c <= 8417 || (c < 8450
-                    ? (c >= 8421 && c <= 8432)
-                    : c <= 8450)))))))
-            : (c <= 8455 || (c < 11264
-              ? (c < 8488
-                ? (c < 8472
-                  ? (c < 8469
-                    ? (c >= 8458 && c <= 8467)
-                    : c <= 8469)
-                  : (c <= 8477 || (c < 8486
-                    ? c == 8484
-                    : c <= 8486)))
-                : (c <= 8488 || (c < 8517
-                  ? (c < 8508
-                    ? (c >= 8490 && c <= 8505)
-                    : c <= 8511)
-                  : (c <= 8521 || (c < 8544
-                    ? c == 8526
-                    : c <= 8584)))))
-              : (c <= 11492 || (c < 11631
-                ? (c < 11559
-                  ? (c < 11520
-                    ? (c >= 11499 && c <= 11507)
-                    : c <= 11557)
-                  : (c <= 11559 || (c < 11568
-                    ? c == 11565
-                    : c <= 11623)))
-                : (c <= 11631 || (c < 11688
-                  ? (c < 11680
-                    ? (c >= 11647 && c <= 11670)
-                    : c <= 11686)
-                  : (c <= 11694 || (c < 11704
-                    ? (c >= 11696 && c <= 11702)
-                    : c <= 11710)))))))))
-          : (c <= 11718 || (c < 42612
-            ? (c < 12449
-              ? (c < 12321
-                ? (c < 11736
-                  ? (c < 11728
-                    ? (c >= 11720 && c <= 11726)
-                    : c <= 11734)
-                  : (c <= 11742 || (c < 12293
-                    ? (c >= 11744 && c <= 11775)
-                    : c <= 12295)))
-                : (c <= 12335 || (c < 12353
-                  ? (c < 12344
-                    ? (c >= 12337 && c <= 12341)
-                    : c <= 12348)
-                  : (c <= 12438 || (c < 12445
-                    ? (c >= 12441 && c <= 12442)
-                    : c <= 12447)))))
-              : (c <= 12538 || (c < 13312
-                ? (c < 12593
-                  ? (c < 12549
-                    ? (c >= 12540 && c <= 12543)
-                    : c <= 12591)
-                  : (c <= 12686 || (c < 12784
-                    ? (c >= 12704 && c <= 12735)
-                    : c <= 12799)))
-                : (c <= 19903 || (c < 42240
-                  ? (c < 42192
-                    ? (c >= 19968 && c <= 42124)
-                    : c <= 42237)
-                  : (c <= 42508 || (c < 42560
-                    ? (c >= 42512 && c <= 42539)
-                    : c <= 42607)))))))
-            : (c <= 42621 || (c < 43216
-              ? (c < 42963
-                ? (c < 42786
-                  ? (c < 42775
-                    ? (c >= 42623 && c <= 42737)
-                    : c <= 42783)
-                  : (c <= 42888 || (c < 42960
-                    ? (c >= 42891 && c <= 42954)
-                    : c <= 42961)))
-                : (c <= 42963 || (c < 43052
-                  ? (c < 42994
-                    ? (c >= 42965 && c <= 42969)
-                    : c <= 43047)
-                  : (c <= 43052 || (c < 43136
-                    ? (c >= 43072 && c <= 43123)
-                    : c <= 43205)))))
-              : (c <= 43225 || (c < 43392
-                ? (c < 43261
-                  ? (c < 43259
-                    ? (c >= 43232 && c <= 43255)
-                    : c <= 43259)
-                  : (c <= 43309 || (c < 43360
-                    ? (c >= 43312 && c <= 43347)
-                    : c <= 43388)))
-                : (c <= 43456 || (c < 43520
-                  ? (c < 43488
-                    ? (c >= 43471 && c <= 43481)
-                    : c <= 43518)
-                  : (c <= 43574 || (c >= 43584 && c <= 43597)))))))))))))))
-    : (c <= 43609 || (c < 71453
-      ? (c < 67594
-        ? (c < 65343
-          ? (c < 64298
-            ? (c < 43868
-              ? (c < 43777
-                ? (c < 43739
-                  ? (c < 43642
-                    ? (c >= 43616 && c <= 43638)
-                    : c <= 43714)
-                  : (c <= 43741 || (c < 43762
-                    ? (c >= 43744 && c <= 43759)
-                    : c <= 43766)))
-                : (c <= 43782 || (c < 43808
-                  ? (c < 43793
-                    ? (c >= 43785 && c <= 43790)
-                    : c <= 43798)
-                  : (c <= 43814 || (c < 43824
-                    ? (c >= 43816 && c <= 43822)
-                    : c <= 43866)))))
-              : (c <= 43881 || (c < 55243
-                ? (c < 44016
-                  ? (c < 44012
-                    ? (c >= 43888 && c <= 44010)
-                    : c <= 44013)
-                  : (c <= 44025 || (c < 55216
-                    ? (c >= 44032 && c <= 55203)
-                    : c <= 55238)))
-                : (c <= 55291 || (c < 64256
-                  ? (c < 64112
-                    ? (c >= 63744 && c <= 64109)
-                    : c <= 64217)
-                  : (c <= 64262 || (c < 64285
-                    ? (c >= 64275 && c <= 64279)
-                    : c <= 64296)))))))
-            : (c <= 64310 || (c < 65056
-              ? (c < 64467
-                ? (c < 64320
-                  ? (c < 64318
-                    ? (c >= 64312 && c <= 64316)
-                    : c <= 64318)
-                  : (c <= 64321 || (c < 64326
-                    ? (c >= 64323 && c <= 64324)
-                    : c <= 64433)))
-                : (c <= 64605 || (c < 64914
-                  ? (c < 64848
-                    ? (c >= 64612 && c <= 64829)
-                    : c <= 64911)
-                  : (c <= 64967 || (c < 65024
-                    ? (c >= 65008 && c <= 65017)
-                    : c <= 65039)))))
-              : (c <= 65071 || (c < 65145
-                ? (c < 65137
-                  ? (c < 65101
-                    ? (c >= 65075 && c <= 65076)
-                    : c <= 65103)
-                  : (c <= 65137 || (c < 65143
-                    ? c == 65139
-                    : c <= 65143)))
-                : (c <= 65145 || (c < 65151
-                  ? (c < 65149
-                    ? c == 65147
-                    : c <= 65149)
-                  : (c <= 65276 || (c < 65313
-                    ? (c >= 65296 && c <= 65305)
-                    : c <= 65338)))))))))
-          : (c <= 65343 || (c < 66504
-            ? (c < 65616
-              ? (c < 65498
-                ? (c < 65474
-                  ? (c < 65382
-                    ? (c >= 65345 && c <= 65370)
-                    : c <= 65470)
-                  : (c <= 65479 || (c < 65490
-                    ? (c >= 65482 && c <= 65487)
-                    : c <= 65495)))
-                : (c <= 65500 || (c < 65576
-                  ? (c < 65549
-                    ? (c >= 65536 && c <= 65547)
-                    : c <= 65574)
-                  : (c <= 65594 || (c < 65599
-                    ? (c >= 65596 && c <= 65597)
-                    : c <= 65613)))))
-              : (c <= 65629 || (c < 66272
-                ? (c < 66045
-                  ? (c < 65856
-                    ? (c >= 65664 && c <= 65786)
-                    : c <= 65908)
-                  : (c <= 66045 || (c < 66208
-                    ? (c >= 66176 && c <= 66204)
-                    : c <= 66256)))
-                : (c <= 66272 || (c < 66384
-                  ? (c < 66349
-                    ? (c >= 66304 && c <= 66335)
-                    : c <= 66378)
-                  : (c <= 66426 || (c < 66464
-                    ? (c >= 66432 && c <= 66461)
-                    : c <= 66499)))))))
-            : (c <= 66511 || (c < 66967
-              ? (c < 66816
-                ? (c < 66720
-                  ? (c < 66560
-                    ? (c >= 66513 && c <= 66517)
-                    : c <= 66717)
-                  : (c <= 66729 || (c < 66776
-                    ? (c >= 66736 && c <= 66771)
-                    : c <= 66811)))
-                : (c <= 66855 || (c < 66940
-                  ? (c < 66928
-                    ? (c >= 66864 && c <= 66915)
-                    : c <= 66938)
-                  : (c <= 66954 || (c < 66964
-                    ? (c >= 66956 && c <= 66962)
-                    : c <= 66965)))))
-              : (c <= 66977 || (c < 67424
-                ? (c < 67003
-                  ? (c < 66995
-                    ? (c >= 66979 && c <= 66993)
-                    : c <= 67001)
-                  : (c <= 67004 || (c < 67392
-                    ? (c >= 67072 && c <= 67382)
-                    : c <= 67413)))
-                : (c <= 67431 || (c < 67506
-                  ? (c < 67463
-                    ? (c >= 67456 && c <= 67461)
-                    : c <= 67504)
-                  : (c <= 67514 || (c < 67592
-                    ? (c >= 67584 && c <= 67589)
-                    : c <= 67592)))))))))))
-        : (c <= 67637 || (c < 69942
-          ? (c < 68416
-            ? (c < 68096
-              ? (c < 67808
-                ? (c < 67647
-                  ? (c < 67644
-                    ? (c >= 67639 && c <= 67640)
-                    : c <= 67644)
-                  : (c <= 67669 || (c < 67712
-                    ? (c >= 67680 && c <= 67702)
-                    : c <= 67742)))
-                : (c <= 67826 || (c < 67872
-                  ? (c < 67840
-                    ? (c >= 67828 && c <= 67829)
-                    : c <= 67861)
-                  : (c <= 67897 || (c < 68030
-                    ? (c >= 67968 && c <= 68023)
-                    : c <= 68031)))))
-              : (c <= 68099 || (c < 68159
-                ? (c < 68117
-                  ? (c < 68108
-                    ? (c >= 68101 && c <= 68102)
-                    : c <= 68115)
-                  : (c <= 68119 || (c < 68152
-                    ? (c >= 68121 && c <= 68149)
-                    : c <= 68154)))
-                : (c <= 68159 || (c < 68288
-                  ? (c < 68224
-                    ? (c >= 68192 && c <= 68220)
-                    : c <= 68252)
-                  : (c <= 68295 || (c < 68352
-                    ? (c >= 68297 && c <= 68326)
-                    : c <= 68405)))))))
-            : (c <= 68437 || (c < 69415
-              ? (c < 68864
-                ? (c < 68608
-                  ? (c < 68480
-                    ? (c >= 68448 && c <= 68466)
-                    : c <= 68497)
-                  : (c <= 68680 || (c < 68800
-                    ? (c >= 68736 && c <= 68786)
-                    : c <= 68850)))
-                : (c <= 68903 || (c < 69291
-                  ? (c < 69248
-                    ? (c >= 68912 && c <= 68921)
-                    : c <= 69289)
-                  : (c <= 69292 || (c < 69376
-                    ? (c >= 69296 && c <= 69297)
-                    : c <= 69404)))))
-              : (c <= 69415 || (c < 69734
-                ? (c < 69552
-                  ? (c < 69488
-                    ? (c >= 69424 && c <= 69456)
-                    : c <= 69509)
-                  : (c <= 69572 || (c < 69632
-                    ? (c >= 69600 && c <= 69622)
-                    : c <= 69702)))
-                : (c <= 69749 || (c < 69840
-                  ? (c < 69826
-                    ? (c >= 69759 && c <= 69818)
-                    : c <= 69826)
-                  : (c <= 69864 || (c < 69888
-                    ? (c >= 69872 && c <= 69881)
-                    : c <= 69940)))))))))
-          : (c <= 69951 || (c < 70453
-            ? (c < 70280
-              ? (c < 70094
-                ? (c < 70006
-                  ? (c < 69968
-                    ? (c >= 69956 && c <= 69959)
-                    : c <= 70003)
-                  : (c <= 70006 || (c < 70089
-                    ? (c >= 70016 && c <= 70084)
-                    : c <= 70092)))
-                : (c <= 70106 || (c < 70163
-                  ? (c < 70144
-                    ? c == 70108
-                    : c <= 70161)
-                  : (c <= 70199 || (c < 70272
-                    ? c == 70206
-                    : c <= 70278)))))
-              : (c <= 70280 || (c < 70400
-                ? (c < 70303
-                  ? (c < 70287
-                    ? (c >= 70282 && c <= 70285)
-                    : c <= 70301)
-                  : (c <= 70312 || (c < 70384
-                    ? (c >= 70320 && c <= 70378)
-                    : c <= 70393)))
-                : (c <= 70403 || (c < 70419
-                  ? (c < 70415
-                    ? (c >= 70405 && c <= 70412)
-                    : c <= 70416)
-                  : (c <= 70440 || (c < 70450
-                    ? (c >= 70442 && c <= 70448)
-                    : c <= 70451)))))))
-            : (c <= 70457 || (c < 70784
-              ? (c < 70493
-                ? (c < 70475
-                  ? (c < 70471
-                    ? (c >= 70459 && c <= 70468)
-                    : c <= 70472)
-                  : (c <= 70477 || (c < 70487
-                    ? c == 70480
-                    : c <= 70487)))
-                : (c <= 70499 || (c < 70656
-                  ? (c < 70512
-                    ? (c >= 70502 && c <= 70508)
-                    : c <= 70516)
-                  : (c <= 70730 || (c < 70750
-                    ? (c >= 70736 && c <= 70745)
-                    : c <= 70753)))))
-              : (c <= 70853 || (c < 71168
-                ? (c < 71040
-                  ? (c < 70864
-                    ? c == 70855
-                    : c <= 70873)
-                  : (c <= 71093 || (c < 71128
-                    ? (c >= 71096 && c <= 71104)
-                    : c <= 71133)))
-                : (c <= 71232 || (c < 71296
-                  ? (c < 71248
-                    ? c == 71236
-                    : c <= 71257)
-                  : (c <= 71352 || (c < 71424
-                    ? (c >= 71360 && c <= 71369)
-                    : c <= 71450)))))))))))))
-      : (c <= 71467 || (c < 119973
-        ? (c < 77824
-          ? (c < 72760
-            ? (c < 72016
-              ? (c < 71945
-                ? (c < 71680
-                  ? (c < 71488
-                    ? (c >= 71472 && c <= 71481)
-                    : c <= 71494)
-                  : (c <= 71738 || (c < 71935
-                    ? (c >= 71840 && c <= 71913)
-                    : c <= 71942)))
-                : (c <= 71945 || (c < 71960
-                  ? (c < 71957
-                    ? (c >= 71948 && c <= 71955)
-                    : c <= 71958)
-                  : (c <= 71989 || (c < 71995
-                    ? (c >= 71991 && c <= 71992)
-                    : c <= 72003)))))
-              : (c <= 72025 || (c < 72263
-                ? (c < 72154
-                  ? (c < 72106
-                    ? (c >= 72096 && c <= 72103)
-                    : c <= 72151)
-                  : (c <= 72161 || (c < 72192
-                    ? (c >= 72163 && c <= 72164)
-                    : c <= 72254)))
-                : (c <= 72263 || (c < 72368
-                  ? (c < 72349
-                    ? (c >= 72272 && c <= 72345)
-                    : c <= 72349)
-                  : (c <= 72440 || (c < 72714
-                    ? (c >= 72704 && c <= 72712)
-                    : c <= 72758)))))))
-            : (c <= 72768 || (c < 73056
-              ? (c < 72968
-                ? (c < 72850
-                  ? (c < 72818
-                    ? (c >= 72784 && c <= 72793)
-                    : c <= 72847)
-                  : (c <= 72871 || (c < 72960
-                    ? (c >= 72873 && c <= 72886)
-                    : c <= 72966)))
-                : (c <= 72969 || (c < 73020
-                  ? (c < 73018
-                    ? (c >= 72971 && c <= 73014)
-                    : c <= 73018)
-                  : (c <= 73021 || (c < 73040
-                    ? (c >= 73023 && c <= 73031)
-                    : c <= 73049)))))
-              : (c <= 73061 || (c < 73440
-                ? (c < 73104
-                  ? (c < 73066
-                    ? (c >= 73063 && c <= 73064)
-                    : c <= 73102)
-                  : (c <= 73105 || (c < 73120
-                    ? (c >= 73107 && c <= 73112)
-                    : c <= 73129)))
-                : (c <= 73462 || (c < 74752
-                  ? (c < 73728
-                    ? c == 73648
-                    : c <= 74649)
-                  : (c <= 74862 || (c < 77712
-                    ? (c >= 74880 && c <= 75075)
-                    : c <= 77808)))))))))
-          : (c <= 78894 || (c < 110576
-            ? (c < 93027
-              ? (c < 92864
-                ? (c < 92736
-                  ? (c < 92160
-                    ? (c >= 82944 && c <= 83526)
-                    : c <= 92728)
-                  : (c <= 92766 || (c < 92784
-                    ? (c >= 92768 && c <= 92777)
-                    : c <= 92862)))
-                : (c <= 92873 || (c < 92928
-                  ? (c < 92912
-                    ? (c >= 92880 && c <= 92909)
-                    : c <= 92916)
-                  : (c <= 92982 || (c < 93008
-                    ? (c >= 92992 && c <= 92995)
-                    : c <= 93017)))))
-              : (c <= 93047 || (c < 94176
-                ? (c < 93952
-                  ? (c < 93760
-                    ? (c >= 93053 && c <= 93071)
-                    : c <= 93823)
-                  : (c <= 94026 || (c < 94095
-                    ? (c >= 94031 && c <= 94087)
-                    : c <= 94111)))
-                : (c <= 94177 || (c < 94208
-                  ? (c < 94192
-                    ? (c >= 94179 && c <= 94180)
-                    : c <= 94193)
-                  : (c <= 100343 || (c < 101632
-                    ? (c >= 100352 && c <= 101589)
-                    : c <= 101640)))))))
-            : (c <= 110579 || (c < 118528
-              ? (c < 110960
-                ? (c < 110592
-                  ? (c < 110589
-                    ? (c >= 110581 && c <= 110587)
-                    : c <= 110590)
-                  : (c <= 110882 || (c < 110948
-                    ? (c >= 110928 && c <= 110930)
-                    : c <= 110951)))
-                : (c <= 111355 || (c < 113792
-                  ? (c < 113776
-                    ? (c >= 113664 && c <= 113770)
-                    : c <= 113788)
-                  : (c <= 113800 || (c < 113821
-                    ? (c >= 113808 && c <= 113817)
-                    : c <= 113822)))))
-              : (c <= 118573 || (c < 119210
-                ? (c < 119149
-                  ? (c < 119141
-                    ? (c >= 118576 && c <= 118598)
-                    : c <= 119145)
-                  : (c <= 119154 || (c < 119173
-                    ? (c >= 119163 && c <= 119170)
-                    : c <= 119179)))
-                : (c <= 119213 || (c < 119894
-                  ? (c < 119808
-                    ? (c >= 119362 && c <= 119364)
-                    : c <= 119892)
-                  : (c <= 119964 || (c < 119970
-                    ? (c >= 119966 && c <= 119967)
-                    : c <= 119970)))))))))))
-        : (c <= 119974 || (c < 124912
-          ? (c < 120746
-            ? (c < 120134
-              ? (c < 120071
-                ? (c < 119995
-                  ? (c < 119982
-                    ? (c >= 119977 && c <= 119980)
-                    : c <= 119993)
-                  : (c <= 119995 || (c < 120005
-                    ? (c >= 119997 && c <= 120003)
-                    : c <= 120069)))
-                : (c <= 120074 || (c < 120094
-                  ? (c < 120086
-                    ? (c >= 120077 && c <= 120084)
-                    : c <= 120092)
-                  : (c <= 120121 || (c < 120128
-                    ? (c >= 120123 && c <= 120126)
-                    : c <= 120132)))))
-              : (c <= 120134 || (c < 120572
-                ? (c < 120488
-                  ? (c < 120146
-                    ? (c >= 120138 && c <= 120144)
-                    : c <= 120485)
-                  : (c <= 120512 || (c < 120540
-                    ? (c >= 120514 && c <= 120538)
-                    : c <= 120570)))
-                : (c <= 120596 || (c < 120656
-                  ? (c < 120630
-                    ? (c >= 120598 && c <= 120628)
-                    : c <= 120654)
-                  : (c <= 120686 || (c < 120714
-                    ? (c >= 120688 && c <= 120712)
-                    : c <= 120744)))))))
-            : (c <= 120770 || (c < 122907
-              ? (c < 121476
-                ? (c < 121344
-                  ? (c < 120782
-                    ? (c >= 120772 && c <= 120779)
-                    : c <= 120831)
-                  : (c <= 121398 || (c < 121461
-                    ? (c >= 121403 && c <= 121452)
-                    : c <= 121461)))
-                : (c <= 121476 || (c < 122624
-                  ? (c < 121505
-                    ? (c >= 121499 && c <= 121503)
-                    : c <= 121519)
-                  : (c <= 122654 || (c < 122888
-                    ? (c >= 122880 && c <= 122886)
-                    : c <= 122904)))))
-              : (c <= 122913 || (c < 123214
-                ? (c < 123136
-                  ? (c < 122918
-                    ? (c >= 122915 && c <= 122916)
-                    : c <= 122922)
-                  : (c <= 123180 || (c < 123200
-                    ? (c >= 123184 && c <= 123197)
-                    : c <= 123209)))
-                : (c <= 123214 || (c < 124896
-                  ? (c < 123584
-                    ? (c >= 123536 && c <= 123566)
-                    : c <= 123641)
-                  : (c <= 124902 || (c < 124909
-                    ? (c >= 124904 && c <= 124907)
-                    : c <= 124910)))))))))
-          : (c <= 124926 || (c < 126557
-            ? (c < 126521
-              ? (c < 126469
-                ? (c < 125184
-                  ? (c < 125136
-                    ? (c >= 124928 && c <= 125124)
-                    : c <= 125142)
-                  : (c <= 125259 || (c < 126464
-                    ? (c >= 125264 && c <= 125273)
-                    : c <= 126467)))
-                : (c <= 126495 || (c < 126503
-                  ? (c < 126500
-                    ? (c >= 126497 && c <= 126498)
-                    : c <= 126500)
-                  : (c <= 126503 || (c < 126516
-                    ? (c >= 126505 && c <= 126514)
-                    : c <= 126519)))))
-              : (c <= 126521 || (c < 126541
-                ? (c < 126535
-                  ? (c < 126530
-                    ? c == 126523
-                    : c <= 126530)
-                  : (c <= 126535 || (c < 126539
-                    ? c == 126537
-                    : c <= 126539)))
-                : (c <= 126543 || (c < 126551
-                  ? (c < 126548
-                    ? (c >= 126545 && c <= 126546)
-                    : c <= 126548)
-                  : (c <= 126551 || (c < 126555
-                    ? c == 126553
-                    : c <= 126555)))))))
-            : (c <= 126557 || (c < 126629
-              ? (c < 126580
-                ? (c < 126564
-                  ? (c < 126561
-                    ? c == 126559
-                    : c <= 126562)
-                  : (c <= 126564 || (c < 126572
-                    ? (c >= 126567 && c <= 126570)
-                    : c <= 126578)))
-                : (c <= 126583 || (c < 126592
-                  ? (c < 126590
-                    ? (c >= 126585 && c <= 126588)
-                    : c <= 126590)
-                  : (c <= 126601 || (c < 126625
-                    ? (c >= 126603 && c <= 126619)
-                    : c <= 126627)))))
-              : (c <= 126633 || (c < 178208
-                ? (c < 131072
-                  ? (c < 130032
-                    ? (c >= 126635 && c <= 126651)
-                    : c <= 130041)
-                  : (c <= 173791 || (c < 177984
-                    ? (c >= 173824 && c <= 177976)
-                    : c <= 178205)))
-                : (c <= 183969 || (c < 196608
-                  ? (c < 194560
-                    ? (c >= 183984 && c <= 191456)
-                    : c <= 195101)
-                  : (c <= 201546 || (c >= 917760 && c <= 917999)))))))))))))))));
-}
+static TSCharacterRange sym_number_literal_character_set_6[] = {
+  {'+', '+'}, {'-', '-'}, {'0', '9'}, {'A', 'F'}, {'L', 'L'}, {'U', 'U'}, {'W', 'W'}, {'a', 'f'},
+  {'l', 'l'}, {'u', 'u'}, {'w', 'w'},
+};
+
+static TSCharacterRange sym_number_literal_character_set_7[] = {
+  {'B', 'B'}, {'D', 'D'}, {'F', 'F'}, {'L', 'L'}, {'U', 'U'}, {'W', 'W'}, {'b', 'b'}, {'d', 'd'},
+  {'f', 'f'}, {'l', 'l'}, {'u', 'u'}, {'w', 'w'},
+};
+
+static TSCharacterRange sym_number_literal_character_set_8[] = {
+  {'\'', '\''}, {'+', '+'}, {'-', '-'}, {'0', '9'}, {'A', 'F'}, {'L', 'L'}, {'P', 'P'}, {'U', 'U'},
+  {'W', 'W'}, {'a', 'f'}, {'l', 'l'}, {'p', 'p'}, {'u', 'u'}, {'w', 'w'},
+};
+
+static TSCharacterRange sym_number_literal_character_set_9[] = {
+  {'\'', '\''}, {'0', '9'}, {'A', 'F'}, {'L', 'L'}, {'P', 'P'}, {'U', 'U'}, {'W', 'W'}, {'a', 'f'},
+  {'l', 'l'}, {'p', 'p'}, {'u', 'u'}, {'w', 'w'},
+};
+
+static TSCharacterRange sym_number_literal_character_set_10[] = {
+  {'\'', '\''}, {'.', '.'}, {'0', '9'}, {'A', 'F'}, {'L', 'L'}, {'P', 'P'}, {'U', 'U'}, {'W', 'X'},
+  {'a', 'f'}, {'l', 'l'}, {'p', 'p'}, {'u', 'u'}, {'w', 'x'},
+};
+
+static TSCharacterRange sym_number_literal_character_set_11[] = {
+  {'\'', '\''}, {'.', '.'}, {'0', '9'}, {'A', 'F'}, {'L', 'L'}, {'P', 'P'}, {'U', 'U'}, {'W', 'W'},
+  {'a', 'f'}, {'l', 'l'}, {'p', 'p'}, {'u', 'u'}, {'w', 'w'},
+};
+
+static TSCharacterRange sym_number_literal_character_set_12[] = {
+  {'\'', '\''}, {'0', '9'}, {'A', 'F'}, {'L', 'L'}, {'U', 'U'}, {'W', 'W'}, {'a', 'f'}, {'l', 'l'},
+  {'u', 'u'}, {'w', 'w'},
+};
+
+static TSCharacterRange sym_number_literal_character_set_13[] = {
+  {'0', '9'}, {'B', 'B'}, {'D', 'D'}, {'F', 'F'}, {'L', 'L'}, {'U', 'U'}, {'W', 'W'}, {'b', 'b'},
+  {'d', 'd'}, {'f', 'f'}, {'l', 'l'}, {'u', 'u'}, {'w', 'w'},
+};
+
+static TSCharacterRange sym_number_literal_character_set_14[] = {
+  {'\'', '\''}, {'+', '+'}, {'-', '.'}, {'0', '9'}, {'A', 'F'}, {'L', 'L'}, {'P', 'P'}, {'U', 'U'},
+  {'W', 'W'}, {'a', 'f'}, {'l', 'l'}, {'p', 'p'}, {'u', 'u'}, {'w', 'w'},
+};
+
+static TSCharacterRange sym_identifier_character_set_1[] = {
+  {'$', '$'}, {'A', 'Z'}, {'\\', '\\'}, {'_', '_'}, {'a', 'z'}, {0xaa, 0xaa}, {0xb5, 0xb5}, {0xba, 0xba},
+  {0xc0, 0xd6}, {0xd8, 0xf6}, {0xf8, 0x2c1}, {0x2c6, 0x2d1}, {0x2e0, 0x2e4}, {0x2ec, 0x2ec}, {0x2ee, 0x2ee}, {0x370, 0x374},
+  {0x376, 0x377}, {0x37b, 0x37d}, {0x37f, 0x37f}, {0x386, 0x386}, {0x388, 0x38a}, {0x38c, 0x38c}, {0x38e, 0x3a1}, {0x3a3, 0x3f5},
+  {0x3f7, 0x481}, {0x48a, 0x52f}, {0x531, 0x556}, {0x559, 0x559}, {0x560, 0x588}, {0x5d0, 0x5ea}, {0x5ef, 0x5f2}, {0x620, 0x64a},
+  {0x66e, 0x66f}, {0x671, 0x6d3}, {0x6d5, 0x6d5}, {0x6e5, 0x6e6}, {0x6ee, 0x6ef}, {0x6fa, 0x6fc}, {0x6ff, 0x6ff}, {0x710, 0x710},
+  {0x712, 0x72f}, {0x74d, 0x7a5}, {0x7b1, 0x7b1}, {0x7ca, 0x7ea}, {0x7f4, 0x7f5}, {0x7fa, 0x7fa}, {0x800, 0x815}, {0x81a, 0x81a},
+  {0x824, 0x824}, {0x828, 0x828}, {0x840, 0x858}, {0x860, 0x86a}, {0x870, 0x887}, {0x889, 0x88e}, {0x8a0, 0x8c9}, {0x904, 0x939},
+  {0x93d, 0x93d}, {0x950, 0x950}, {0x958, 0x961}, {0x971, 0x980}, {0x985, 0x98c}, {0x98f, 0x990}, {0x993, 0x9a8}, {0x9aa, 0x9b0},
+  {0x9b2, 0x9b2}, {0x9b6, 0x9b9}, {0x9bd, 0x9bd}, {0x9ce, 0x9ce}, {0x9dc, 0x9dd}, {0x9df, 0x9e1}, {0x9f0, 0x9f1}, {0x9fc, 0x9fc},
+  {0xa05, 0xa0a}, {0xa0f, 0xa10}, {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa32, 0xa33}, {0xa35, 0xa36}, {0xa38, 0xa39}, {0xa59, 0xa5c},
+  {0xa5e, 0xa5e}, {0xa72, 0xa74}, {0xa85, 0xa8d}, {0xa8f, 0xa91}, {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9},
+  {0xabd, 0xabd}, {0xad0, 0xad0}, {0xae0, 0xae1}, {0xaf9, 0xaf9}, {0xb05, 0xb0c}, {0xb0f, 0xb10}, {0xb13, 0xb28}, {0xb2a, 0xb30},
+  {0xb32, 0xb33}, {0xb35, 0xb39}, {0xb3d, 0xb3d}, {0xb5c, 0xb5d}, {0xb5f, 0xb61}, {0xb71, 0xb71}, {0xb83, 0xb83}, {0xb85, 0xb8a},
+  {0xb8e, 0xb90}, {0xb92, 0xb95}, {0xb99, 0xb9a}, {0xb9c, 0xb9c}, {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa}, {0xbae, 0xbb9},
+  {0xbd0, 0xbd0}, {0xc05, 0xc0c}, {0xc0e, 0xc10}, {0xc12, 0xc28}, {0xc2a, 0xc39}, {0xc3d, 0xc3d}, {0xc58, 0xc5a}, {0xc5d, 0xc5d},
+  {0xc60, 0xc61}, {0xc80, 0xc80}, {0xc85, 0xc8c}, {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, {0xcbd, 0xcbd},
+  {0xcdd, 0xcde}, {0xce0, 0xce1}, {0xcf1, 0xcf2}, {0xd04, 0xd0c}, {0xd0e, 0xd10}, {0xd12, 0xd3a}, {0xd3d, 0xd3d}, {0xd4e, 0xd4e},
+  {0xd54, 0xd56}, {0xd5f, 0xd61}, {0xd7a, 0xd7f}, {0xd85, 0xd96}, {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, {0xdbd, 0xdbd}, {0xdc0, 0xdc6},
+  {0xe01, 0xe30}, {0xe32, 0xe32}, {0xe40, 0xe46}, {0xe81, 0xe82}, {0xe84, 0xe84}, {0xe86, 0xe8a}, {0xe8c, 0xea3}, {0xea5, 0xea5},
+  {0xea7, 0xeb0}, {0xeb2, 0xeb2}, {0xebd, 0xebd}, {0xec0, 0xec4}, {0xec6, 0xec6}, {0xedc, 0xedf}, {0xf00, 0xf00}, {0xf40, 0xf47},
+  {0xf49, 0xf6c}, {0xf88, 0xf8c}, {0x1000, 0x102a}, {0x103f, 0x103f}, {0x1050, 0x1055}, {0x105a, 0x105d}, {0x1061, 0x1061}, {0x1065, 0x1066},
+  {0x106e, 0x1070}, {0x1075, 0x1081}, {0x108e, 0x108e}, {0x10a0, 0x10c5}, {0x10c7, 0x10c7}, {0x10cd, 0x10cd}, {0x10d0, 0x10fa}, {0x10fc, 0x1248},
+  {0x124a, 0x124d}, {0x1250, 0x1256}, {0x1258, 0x1258}, {0x125a, 0x125d}, {0x1260, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12b0}, {0x12b2, 0x12b5},
+  {0x12b8, 0x12be}, {0x12c0, 0x12c0}, {0x12c2, 0x12c5}, {0x12c8, 0x12d6}, {0x12d8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135a}, {0x1380, 0x138f},
+  {0x13a0, 0x13f5}, {0x13f8, 0x13fd}, {0x1401, 0x166c}, {0x166f, 0x167f}, {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x16ee, 0x16f8}, {0x1700, 0x1711},
+  {0x171f, 0x1731}, {0x1740, 0x1751}, {0x1760, 0x176c}, {0x176e, 0x1770}, {0x1780, 0x17b3}, {0x17d7, 0x17d7}, {0x17dc, 0x17dc}, {0x1820, 0x1878},
+  {0x1880, 0x18a8}, {0x18aa, 0x18aa}, {0x18b0, 0x18f5}, {0x1900, 0x191e}, {0x1950, 0x196d}, {0x1970, 0x1974}, {0x1980, 0x19ab}, {0x19b0, 0x19c9},
+  {0x1a00, 0x1a16}, {0x1a20, 0x1a54}, {0x1aa7, 0x1aa7}, {0x1b05, 0x1b33}, {0x1b45, 0x1b4c}, {0x1b83, 0x1ba0}, {0x1bae, 0x1baf}, {0x1bba, 0x1be5},
+  {0x1c00, 0x1c23}, {0x1c4d, 0x1c4f}, {0x1c5a, 0x1c7d}, {0x1c80, 0x1c88}, {0x1c90, 0x1cba}, {0x1cbd, 0x1cbf}, {0x1ce9, 0x1cec}, {0x1cee, 0x1cf3},
+  {0x1cf5, 0x1cf6}, {0x1cfa, 0x1cfa}, {0x1d00, 0x1dbf}, {0x1e00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57},
+  {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4},
+  {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x2071, 0x2071}, {0x207f, 0x207f},
+  {0x2090, 0x209c}, {0x2102, 0x2102}, {0x2107, 0x2107}, {0x210a, 0x2113}, {0x2115, 0x2115}, {0x2118, 0x211d}, {0x2124, 0x2124}, {0x2126, 0x2126},
+  {0x2128, 0x2128}, {0x212a, 0x2139}, {0x213c, 0x213f}, {0x2145, 0x2149}, {0x214e, 0x214e}, {0x2160, 0x2188}, {0x2c00, 0x2ce4}, {0x2ceb, 0x2cee},
+  {0x2cf2, 0x2cf3}, {0x2d00, 0x2d25}, {0x2d27, 0x2d27}, {0x2d2d, 0x2d2d}, {0x2d30, 0x2d67}, {0x2d6f, 0x2d6f}, {0x2d80, 0x2d96}, {0x2da0, 0x2da6},
+  {0x2da8, 0x2dae}, {0x2db0, 0x2db6}, {0x2db8, 0x2dbe}, {0x2dc0, 0x2dc6}, {0x2dc8, 0x2dce}, {0x2dd0, 0x2dd6}, {0x2dd8, 0x2dde}, {0x3005, 0x3007},
+  {0x3021, 0x3029}, {0x3031, 0x3035}, {0x3038, 0x303c}, {0x3041, 0x3096}, {0x309d, 0x309f}, {0x30a1, 0x30fa}, {0x30fc, 0x30ff}, {0x3105, 0x312f},
+  {0x3131, 0x318e}, {0x31a0, 0x31bf}, {0x31f0, 0x31ff}, {0x3400, 0x4dbf}, {0x4e00, 0xa48c}, {0xa4d0, 0xa4fd}, {0xa500, 0xa60c}, {0xa610, 0xa61f},
+  {0xa62a, 0xa62b}, {0xa640, 0xa66e}, {0xa67f, 0xa69d}, {0xa6a0, 0xa6ef}, {0xa717, 0xa71f}, {0xa722, 0xa788}, {0xa78b, 0xa7ca}, {0xa7d0, 0xa7d1},
+  {0xa7d3, 0xa7d3}, {0xa7d5, 0xa7d9}, {0xa7f2, 0xa801}, {0xa803, 0xa805}, {0xa807, 0xa80a}, {0xa80c, 0xa822}, {0xa840, 0xa873}, {0xa882, 0xa8b3},
+  {0xa8f2, 0xa8f7}, {0xa8fb, 0xa8fb}, {0xa8fd, 0xa8fe}, {0xa90a, 0xa925}, {0xa930, 0xa946}, {0xa960, 0xa97c}, {0xa984, 0xa9b2}, {0xa9cf, 0xa9cf},
+  {0xa9e0, 0xa9e4}, {0xa9e6, 0xa9ef}, {0xa9fa, 0xa9fe}, {0xaa00, 0xaa28}, {0xaa40, 0xaa42}, {0xaa44, 0xaa4b}, {0xaa60, 0xaa76}, {0xaa7a, 0xaa7a},
+  {0xaa7e, 0xaaaf}, {0xaab1, 0xaab1}, {0xaab5, 0xaab6}, {0xaab9, 0xaabd}, {0xaac0, 0xaac0}, {0xaac2, 0xaac2}, {0xaadb, 0xaadd}, {0xaae0, 0xaaea},
+  {0xaaf2, 0xaaf4}, {0xab01, 0xab06}, {0xab09, 0xab0e}, {0xab11, 0xab16}, {0xab20, 0xab26}, {0xab28, 0xab2e}, {0xab30, 0xab5a}, {0xab5c, 0xab69},
+  {0xab70, 0xabe2}, {0xac00, 0xd7a3}, {0xd7b0, 0xd7c6}, {0xd7cb, 0xd7fb}, {0xf900, 0xfa6d}, {0xfa70, 0xfad9}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17},
+  {0xfb1d, 0xfb1d}, {0xfb1f, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb3e, 0xfb3e}, {0xfb40, 0xfb41}, {0xfb43, 0xfb44}, {0xfb46, 0xfbb1},
+  {0xfbd3, 0xfc5d}, {0xfc64, 0xfd3d}, {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdf9}, {0xfe71, 0xfe71}, {0xfe73, 0xfe73}, {0xfe77, 0xfe77},
+  {0xfe79, 0xfe79}, {0xfe7b, 0xfe7b}, {0xfe7d, 0xfe7d}, {0xfe7f, 0xfefc}, {0xff21, 0xff3a}, {0xff41, 0xff5a}, {0xff66, 0xff9d}, {0xffa0, 0xffbe},
+  {0xffc2, 0xffc7}, {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc}, {0x10000, 0x1000b}, {0x1000d, 0x10026}, {0x10028, 0x1003a}, {0x1003c, 0x1003d},
+  {0x1003f, 0x1004d}, {0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10140, 0x10174}, {0x10280, 0x1029c}, {0x102a0, 0x102d0}, {0x10300, 0x1031f}, {0x1032d, 0x1034a},
+  {0x10350, 0x10375}, {0x10380, 0x1039d}, {0x103a0, 0x103c3}, {0x103c8, 0x103cf}, {0x103d1, 0x103d5}, {0x10400, 0x1049d}, {0x104b0, 0x104d3}, {0x104d8, 0x104fb},
+  {0x10500, 0x10527}, {0x10530, 0x10563}, {0x10570, 0x1057a}, {0x1057c, 0x1058a}, {0x1058c, 0x10592}, {0x10594, 0x10595}, {0x10597, 0x105a1}, {0x105a3, 0x105b1},
+  {0x105b3, 0x105b9}, {0x105bb, 0x105bc}, {0x10600, 0x10736}, {0x10740, 0x10755}, {0x10760, 0x10767}, {0x10780, 0x10785}, {0x10787, 0x107b0}, {0x107b2, 0x107ba},
+  {0x10800, 0x10805}, {0x10808, 0x10808}, {0x1080a, 0x10835}, {0x10837, 0x10838}, {0x1083c, 0x1083c}, {0x1083f, 0x10855}, {0x10860, 0x10876}, {0x10880, 0x1089e},
+  {0x108e0, 0x108f2}, {0x108f4, 0x108f5}, {0x10900, 0x10915}, {0x10920, 0x10939}, {0x10980, 0x109b7}, {0x109be, 0x109bf}, {0x10a00, 0x10a00}, {0x10a10, 0x10a13},
+  {0x10a15, 0x10a17}, {0x10a19, 0x10a35}, {0x10a60, 0x10a7c}, {0x10a80, 0x10a9c}, {0x10ac0, 0x10ac7}, {0x10ac9, 0x10ae4}, {0x10b00, 0x10b35}, {0x10b40, 0x10b55},
+  {0x10b60, 0x10b72}, {0x10b80, 0x10b91}, {0x10c00, 0x10c48}, {0x10c80, 0x10cb2}, {0x10cc0, 0x10cf2}, {0x10d00, 0x10d23}, {0x10e80, 0x10ea9}, {0x10eb0, 0x10eb1},
+  {0x10f00, 0x10f1c}, {0x10f27, 0x10f27}, {0x10f30, 0x10f45}, {0x10f70, 0x10f81}, {0x10fb0, 0x10fc4}, {0x10fe0, 0x10ff6}, {0x11003, 0x11037}, {0x11071, 0x11072},
+  {0x11075, 0x11075}, {0x11083, 0x110af}, {0x110d0, 0x110e8}, {0x11103, 0x11126}, {0x11144, 0x11144}, {0x11147, 0x11147}, {0x11150, 0x11172}, {0x11176, 0x11176},
+  {0x11183, 0x111b2}, {0x111c1, 0x111c4}, {0x111da, 0x111da}, {0x111dc, 0x111dc}, {0x11200, 0x11211}, {0x11213, 0x1122b}, {0x11280, 0x11286}, {0x11288, 0x11288},
+  {0x1128a, 0x1128d}, {0x1128f, 0x1129d}, {0x1129f, 0x112a8}, {0x112b0, 0x112de}, {0x11305, 0x1130c}, {0x1130f, 0x11310}, {0x11313, 0x11328}, {0x1132a, 0x11330},
+  {0x11332, 0x11333}, {0x11335, 0x11339}, {0x1133d, 0x1133d}, {0x11350, 0x11350}, {0x1135d, 0x11361}, {0x11400, 0x11434}, {0x11447, 0x1144a}, {0x1145f, 0x11461},
+  {0x11480, 0x114af}, {0x114c4, 0x114c5}, {0x114c7, 0x114c7}, {0x11580, 0x115ae}, {0x115d8, 0x115db}, {0x11600, 0x1162f}, {0x11644, 0x11644}, {0x11680, 0x116aa},
+  {0x116b8, 0x116b8}, {0x11700, 0x1171a}, {0x11740, 0x11746}, {0x11800, 0x1182b}, {0x118a0, 0x118df}, {0x118ff, 0x11906}, {0x11909, 0x11909}, {0x1190c, 0x11913},
+  {0x11915, 0x11916}, {0x11918, 0x1192f}, {0x1193f, 0x1193f}, {0x11941, 0x11941}, {0x119a0, 0x119a7}, {0x119aa, 0x119d0}, {0x119e1, 0x119e1}, {0x119e3, 0x119e3},
+  {0x11a00, 0x11a00}, {0x11a0b, 0x11a32}, {0x11a3a, 0x11a3a}, {0x11a50, 0x11a50}, {0x11a5c, 0x11a89}, {0x11a9d, 0x11a9d}, {0x11ab0, 0x11af8}, {0x11c00, 0x11c08},
+  {0x11c0a, 0x11c2e}, {0x11c40, 0x11c40}, {0x11c72, 0x11c8f}, {0x11d00, 0x11d06}, {0x11d08, 0x11d09}, {0x11d0b, 0x11d30}, {0x11d46, 0x11d46}, {0x11d60, 0x11d65},
+  {0x11d67, 0x11d68}, {0x11d6a, 0x11d89}, {0x11d98, 0x11d98}, {0x11ee0, 0x11ef2}, {0x11fb0, 0x11fb0}, {0x12000, 0x12399}, {0x12400, 0x1246e}, {0x12480, 0x12543},
+  {0x12f90, 0x12ff0}, {0x13000, 0x1342e}, {0x14400, 0x14646}, {0x16800, 0x16a38}, {0x16a40, 0x16a5e}, {0x16a70, 0x16abe}, {0x16ad0, 0x16aed}, {0x16b00, 0x16b2f},
+  {0x16b40, 0x16b43}, {0x16b63, 0x16b77}, {0x16b7d, 0x16b8f}, {0x16e40, 0x16e7f}, {0x16f00, 0x16f4a}, {0x16f50, 0x16f50}, {0x16f93, 0x16f9f}, {0x16fe0, 0x16fe1},
+  {0x16fe3, 0x16fe3}, {0x17000, 0x187f7}, {0x18800, 0x18cd5}, {0x18d00, 0x18d08}, {0x1aff0, 0x1aff3}, {0x1aff5, 0x1affb}, {0x1affd, 0x1affe}, {0x1b000, 0x1b122},
+  {0x1b150, 0x1b152}, {0x1b164, 0x1b167}, {0x1b170, 0x1b2fb}, {0x1bc00, 0x1bc6a}, {0x1bc70, 0x1bc7c}, {0x1bc80, 0x1bc88}, {0x1bc90, 0x1bc99}, {0x1d400, 0x1d454},
+  {0x1d456, 0x1d49c}, {0x1d49e, 0x1d49f}, {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3},
+  {0x1d4c5, 0x1d505}, {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514}, {0x1d516, 0x1d51c}, {0x1d51e, 0x1d539}, {0x1d53b, 0x1d53e}, {0x1d540, 0x1d544}, {0x1d546, 0x1d546},
+  {0x1d54a, 0x1d550}, {0x1d552, 0x1d6a5}, {0x1d6a8, 0x1d6c0}, {0x1d6c2, 0x1d6da}, {0x1d6dc, 0x1d6fa}, {0x1d6fc, 0x1d714}, {0x1d716, 0x1d734}, {0x1d736, 0x1d74e},
+  {0x1d750, 0x1d76e}, {0x1d770, 0x1d788}, {0x1d78a, 0x1d7a8}, {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7cb}, {0x1df00, 0x1df1e}, {0x1e100, 0x1e12c}, {0x1e137, 0x1e13d},
+  {0x1e14e, 0x1e14e}, {0x1e290, 0x1e2ad}, {0x1e2c0, 0x1e2eb}, {0x1e7e0, 0x1e7e6}, {0x1e7e8, 0x1e7eb}, {0x1e7ed, 0x1e7ee}, {0x1e7f0, 0x1e7fe}, {0x1e800, 0x1e8c4},
+  {0x1e900, 0x1e943}, {0x1e94b, 0x1e94b}, {0x1ee00, 0x1ee03}, {0x1ee05, 0x1ee1f}, {0x1ee21, 0x1ee22}, {0x1ee24, 0x1ee24}, {0x1ee27, 0x1ee27}, {0x1ee29, 0x1ee32},
+  {0x1ee34, 0x1ee37}, {0x1ee39, 0x1ee39}, {0x1ee3b, 0x1ee3b}, {0x1ee42, 0x1ee42}, {0x1ee47, 0x1ee47}, {0x1ee49, 0x1ee49}, {0x1ee4b, 0x1ee4b}, {0x1ee4d, 0x1ee4f},
+  {0x1ee51, 0x1ee52}, {0x1ee54, 0x1ee54}, {0x1ee57, 0x1ee57}, {0x1ee59, 0x1ee59}, {0x1ee5b, 0x1ee5b}, {0x1ee5d, 0x1ee5d}, {0x1ee5f, 0x1ee5f}, {0x1ee61, 0x1ee62},
+  {0x1ee64, 0x1ee64}, {0x1ee67, 0x1ee6a}, {0x1ee6c, 0x1ee72}, {0x1ee74, 0x1ee77}, {0x1ee79, 0x1ee7c}, {0x1ee7e, 0x1ee7e}, {0x1ee80, 0x1ee89}, {0x1ee8b, 0x1ee9b},
+  {0x1eea1, 0x1eea3}, {0x1eea5, 0x1eea9}, {0x1eeab, 0x1eebb}, {0x20000, 0x2a6df}, {0x2a700, 0x2b738}, {0x2b740, 0x2b81d}, {0x2b820, 0x2cea1}, {0x2ceb0, 0x2ebe0},
+  {0x2f800, 0x2fa1d}, {0x30000, 0x3134a},
+};
+
+static TSCharacterRange sym_identifier_character_set_2[] = {
+  {'$', '$'}, {'0', '9'}, {'A', 'Z'}, {'\\', '\\'}, {'_', '_'}, {'a', 'z'}, {0xaa, 0xaa}, {0xb5, 0xb5},
+  {0xb7, 0xb7}, {0xba, 0xba}, {0xc0, 0xd6}, {0xd8, 0xf6}, {0xf8, 0x2c1}, {0x2c6, 0x2d1}, {0x2e0, 0x2e4}, {0x2ec, 0x2ec},
+  {0x2ee, 0x2ee}, {0x300, 0x374}, {0x376, 0x377}, {0x37b, 0x37d}, {0x37f, 0x37f}, {0x386, 0x38a}, {0x38c, 0x38c}, {0x38e, 0x3a1},
+  {0x3a3, 0x3f5}, {0x3f7, 0x481}, {0x483, 0x487}, {0x48a, 0x52f}, {0x531, 0x556}, {0x559, 0x559}, {0x560, 0x588}, {0x591, 0x5bd},
+  {0x5bf, 0x5bf}, {0x5c1, 0x5c2}, {0x5c4, 0x5c5}, {0x5c7, 0x5c7}, {0x5d0, 0x5ea}, {0x5ef, 0x5f2}, {0x610, 0x61a}, {0x620, 0x669},
+  {0x66e, 0x6d3}, {0x6d5, 0x6dc}, {0x6df, 0x6e8}, {0x6ea, 0x6fc}, {0x6ff, 0x6ff}, {0x710, 0x74a}, {0x74d, 0x7b1}, {0x7c0, 0x7f5},
+  {0x7fa, 0x7fa}, {0x7fd, 0x7fd}, {0x800, 0x82d}, {0x840, 0x85b}, {0x860, 0x86a}, {0x870, 0x887}, {0x889, 0x88e}, {0x898, 0x8e1},
+  {0x8e3, 0x963}, {0x966, 0x96f}, {0x971, 0x983}, {0x985, 0x98c}, {0x98f, 0x990}, {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b2, 0x9b2},
+  {0x9b6, 0x9b9}, {0x9bc, 0x9c4}, {0x9c7, 0x9c8}, {0x9cb, 0x9ce}, {0x9d7, 0x9d7}, {0x9dc, 0x9dd}, {0x9df, 0x9e3}, {0x9e6, 0x9f1},
+  {0x9fc, 0x9fc}, {0x9fe, 0x9fe}, {0xa01, 0xa03}, {0xa05, 0xa0a}, {0xa0f, 0xa10}, {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa32, 0xa33},
+  {0xa35, 0xa36}, {0xa38, 0xa39}, {0xa3c, 0xa3c}, {0xa3e, 0xa42}, {0xa47, 0xa48}, {0xa4b, 0xa4d}, {0xa51, 0xa51}, {0xa59, 0xa5c},
+  {0xa5e, 0xa5e}, {0xa66, 0xa75}, {0xa81, 0xa83}, {0xa85, 0xa8d}, {0xa8f, 0xa91}, {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3},
+  {0xab5, 0xab9}, {0xabc, 0xac5}, {0xac7, 0xac9}, {0xacb, 0xacd}, {0xad0, 0xad0}, {0xae0, 0xae3}, {0xae6, 0xaef}, {0xaf9, 0xaff},
+  {0xb01, 0xb03}, {0xb05, 0xb0c}, {0xb0f, 0xb10}, {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb32, 0xb33}, {0xb35, 0xb39}, {0xb3c, 0xb44},
+  {0xb47, 0xb48}, {0xb4b, 0xb4d}, {0xb55, 0xb57}, {0xb5c, 0xb5d}, {0xb5f, 0xb63}, {0xb66, 0xb6f}, {0xb71, 0xb71}, {0xb82, 0xb83},
+  {0xb85, 0xb8a}, {0xb8e, 0xb90}, {0xb92, 0xb95}, {0xb99, 0xb9a}, {0xb9c, 0xb9c}, {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa},
+  {0xbae, 0xbb9}, {0xbbe, 0xbc2}, {0xbc6, 0xbc8}, {0xbca, 0xbcd}, {0xbd0, 0xbd0}, {0xbd7, 0xbd7}, {0xbe6, 0xbef}, {0xc00, 0xc0c},
+  {0xc0e, 0xc10}, {0xc12, 0xc28}, {0xc2a, 0xc39}, {0xc3c, 0xc44}, {0xc46, 0xc48}, {0xc4a, 0xc4d}, {0xc55, 0xc56}, {0xc58, 0xc5a},
+  {0xc5d, 0xc5d}, {0xc60, 0xc63}, {0xc66, 0xc6f}, {0xc80, 0xc83}, {0xc85, 0xc8c}, {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3},
+  {0xcb5, 0xcb9}, {0xcbc, 0xcc4}, {0xcc6, 0xcc8}, {0xcca, 0xccd}, {0xcd5, 0xcd6}, {0xcdd, 0xcde}, {0xce0, 0xce3}, {0xce6, 0xcef},
+  {0xcf1, 0xcf2}, {0xd00, 0xd0c}, {0xd0e, 0xd10}, {0xd12, 0xd44}, {0xd46, 0xd48}, {0xd4a, 0xd4e}, {0xd54, 0xd57}, {0xd5f, 0xd63},
+  {0xd66, 0xd6f}, {0xd7a, 0xd7f}, {0xd81, 0xd83}, {0xd85, 0xd96}, {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, {0xdbd, 0xdbd}, {0xdc0, 0xdc6},
+  {0xdca, 0xdca}, {0xdcf, 0xdd4}, {0xdd6, 0xdd6}, {0xdd8, 0xddf}, {0xde6, 0xdef}, {0xdf2, 0xdf3}, {0xe01, 0xe3a}, {0xe40, 0xe4e},
+  {0xe50, 0xe59}, {0xe81, 0xe82}, {0xe84, 0xe84}, {0xe86, 0xe8a}, {0xe8c, 0xea3}, {0xea5, 0xea5}, {0xea7, 0xebd}, {0xec0, 0xec4},
+  {0xec6, 0xec6}, {0xec8, 0xecd}, {0xed0, 0xed9}, {0xedc, 0xedf}, {0xf00, 0xf00}, {0xf18, 0xf19}, {0xf20, 0xf29}, {0xf35, 0xf35},
+  {0xf37, 0xf37}, {0xf39, 0xf39}, {0xf3e, 0xf47}, {0xf49, 0xf6c}, {0xf71, 0xf84}, {0xf86, 0xf97}, {0xf99, 0xfbc}, {0xfc6, 0xfc6},
+  {0x1000, 0x1049}, {0x1050, 0x109d}, {0x10a0, 0x10c5}, {0x10c7, 0x10c7}, {0x10cd, 0x10cd}, {0x10d0, 0x10fa}, {0x10fc, 0x1248}, {0x124a, 0x124d},
+  {0x1250, 0x1256}, {0x1258, 0x1258}, {0x125a, 0x125d}, {0x1260, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12b0}, {0x12b2, 0x12b5}, {0x12b8, 0x12be},
+  {0x12c0, 0x12c0}, {0x12c2, 0x12c5}, {0x12c8, 0x12d6}, {0x12d8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135a}, {0x135d, 0x135f}, {0x1369, 0x1371},
+  {0x1380, 0x138f}, {0x13a0, 0x13f5}, {0x13f8, 0x13fd}, {0x1401, 0x166c}, {0x166f, 0x167f}, {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x16ee, 0x16f8},
+  {0x1700, 0x1715}, {0x171f, 0x1734}, {0x1740, 0x1753}, {0x1760, 0x176c}, {0x176e, 0x1770}, {0x1772, 0x1773}, {0x1780, 0x17d3}, {0x17d7, 0x17d7},
+  {0x17dc, 0x17dd}, {0x17e0, 0x17e9}, {0x180b, 0x180d}, {0x180f, 0x1819}, {0x1820, 0x1878}, {0x1880, 0x18aa}, {0x18b0, 0x18f5}, {0x1900, 0x191e},
+  {0x1920, 0x192b}, {0x1930, 0x193b}, {0x1946, 0x196d}, {0x1970, 0x1974}, {0x1980, 0x19ab}, {0x19b0, 0x19c9}, {0x19d0, 0x19da}, {0x1a00, 0x1a1b},
+  {0x1a20, 0x1a5e}, {0x1a60, 0x1a7c}, {0x1a7f, 0x1a89}, {0x1a90, 0x1a99}, {0x1aa7, 0x1aa7}, {0x1ab0, 0x1abd}, {0x1abf, 0x1ace}, {0x1b00, 0x1b4c},
+  {0x1b50, 0x1b59}, {0x1b6b, 0x1b73}, {0x1b80, 0x1bf3}, {0x1c00, 0x1c37}, {0x1c40, 0x1c49}, {0x1c4d, 0x1c7d}, {0x1c80, 0x1c88}, {0x1c90, 0x1cba},
+  {0x1cbd, 0x1cbf}, {0x1cd0, 0x1cd2}, {0x1cd4, 0x1cfa}, {0x1d00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57},
+  {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4},
+  {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x203f, 0x2040}, {0x2054, 0x2054},
+  {0x2071, 0x2071}, {0x207f, 0x207f}, {0x2090, 0x209c}, {0x20d0, 0x20dc}, {0x20e1, 0x20e1}, {0x20e5, 0x20f0}, {0x2102, 0x2102}, {0x2107, 0x2107},
+  {0x210a, 0x2113}, {0x2115, 0x2115}, {0x2118, 0x211d}, {0x2124, 0x2124}, {0x2126, 0x2126}, {0x2128, 0x2128}, {0x212a, 0x2139}, {0x213c, 0x213f},
+  {0x2145, 0x2149}, {0x214e, 0x214e}, {0x2160, 0x2188}, {0x2c00, 0x2ce4}, {0x2ceb, 0x2cf3}, {0x2d00, 0x2d25}, {0x2d27, 0x2d27}, {0x2d2d, 0x2d2d},
+  {0x2d30, 0x2d67}, {0x2d6f, 0x2d6f}, {0x2d7f, 0x2d96}, {0x2da0, 0x2da6}, {0x2da8, 0x2dae}, {0x2db0, 0x2db6}, {0x2db8, 0x2dbe}, {0x2dc0, 0x2dc6},
+  {0x2dc8, 0x2dce}, {0x2dd0, 0x2dd6}, {0x2dd8, 0x2dde}, {0x2de0, 0x2dff}, {0x3005, 0x3007}, {0x3021, 0x302f}, {0x3031, 0x3035}, {0x3038, 0x303c},
+  {0x3041, 0x3096}, {0x3099, 0x309a}, {0x309d, 0x309f}, {0x30a1, 0x30fa}, {0x30fc, 0x30ff}, {0x3105, 0x312f}, {0x3131, 0x318e}, {0x31a0, 0x31bf},
+  {0x31f0, 0x31ff}, {0x3400, 0x4dbf}, {0x4e00, 0xa48c}, {0xa4d0, 0xa4fd}, {0xa500, 0xa60c}, {0xa610, 0xa62b}, {0xa640, 0xa66f}, {0xa674, 0xa67d},
+  {0xa67f, 0xa6f1}, {0xa717, 0xa71f}, {0xa722, 0xa788}, {0xa78b, 0xa7ca}, {0xa7d0, 0xa7d1}, {0xa7d3, 0xa7d3}, {0xa7d5, 0xa7d9}, {0xa7f2, 0xa827},
+  {0xa82c, 0xa82c}, {0xa840, 0xa873}, {0xa880, 0xa8c5}, {0xa8d0, 0xa8d9}, {0xa8e0, 0xa8f7}, {0xa8fb, 0xa8fb}, {0xa8fd, 0xa92d}, {0xa930, 0xa953},
+  {0xa960, 0xa97c}, {0xa980, 0xa9c0}, {0xa9cf, 0xa9d9}, {0xa9e0, 0xa9fe}, {0xaa00, 0xaa36}, {0xaa40, 0xaa4d}, {0xaa50, 0xaa59}, {0xaa60, 0xaa76},
+  {0xaa7a, 0xaac2}, {0xaadb, 0xaadd}, {0xaae0, 0xaaef}, {0xaaf2, 0xaaf6}, {0xab01, 0xab06}, {0xab09, 0xab0e}, {0xab11, 0xab16}, {0xab20, 0xab26},
+  {0xab28, 0xab2e}, {0xab30, 0xab5a}, {0xab5c, 0xab69}, {0xab70, 0xabea}, {0xabec, 0xabed}, {0xabf0, 0xabf9}, {0xac00, 0xd7a3}, {0xd7b0, 0xd7c6},
+  {0xd7cb, 0xd7fb}, {0xf900, 0xfa6d}, {0xfa70, 0xfad9}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xfb1d, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c},
+  {0xfb3e, 0xfb3e}, {0xfb40, 0xfb41}, {0xfb43, 0xfb44}, {0xfb46, 0xfbb1}, {0xfbd3, 0xfc5d}, {0xfc64, 0xfd3d}, {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7},
+  {0xfdf0, 0xfdf9}, {0xfe00, 0xfe0f}, {0xfe20, 0xfe2f}, {0xfe33, 0xfe34}, {0xfe4d, 0xfe4f}, {0xfe71, 0xfe71}, {0xfe73, 0xfe73}, {0xfe77, 0xfe77},
+  {0xfe79, 0xfe79}, {0xfe7b, 0xfe7b}, {0xfe7d, 0xfe7d}, {0xfe7f, 0xfefc}, {0xff10, 0xff19}, {0xff21, 0xff3a}, {0xff3f, 0xff3f}, {0xff41, 0xff5a},
+  {0xff66, 0xffbe}, {0xffc2, 0xffc7}, {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc}, {0x10000, 0x1000b}, {0x1000d, 0x10026}, {0x10028, 0x1003a},
+  {0x1003c, 0x1003d}, {0x1003f, 0x1004d}, {0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10140, 0x10174}, {0x101fd, 0x101fd}, {0x10280, 0x1029c}, {0x102a0, 0x102d0},
+  {0x102e0, 0x102e0}, {0x10300, 0x1031f}, {0x1032d, 0x1034a}, {0x10350, 0x1037a}, {0x10380, 0x1039d}, {0x103a0, 0x103c3}, {0x103c8, 0x103cf}, {0x103d1, 0x103d5},
+  {0x10400, 0x1049d}, {0x104a0, 0x104a9}, {0x104b0, 0x104d3}, {0x104d8, 0x104fb}, {0x10500, 0x10527}, {0x10530, 0x10563}, {0x10570, 0x1057a}, {0x1057c, 0x1058a},
+  {0x1058c, 0x10592}, {0x10594, 0x10595}, {0x10597, 0x105a1}, {0x105a3, 0x105b1}, {0x105b3, 0x105b9}, {0x105bb, 0x105bc}, {0x10600, 0x10736}, {0x10740, 0x10755},
+  {0x10760, 0x10767}, {0x10780, 0x10785}, {0x10787, 0x107b0}, {0x107b2, 0x107ba}, {0x10800, 0x10805}, {0x10808, 0x10808}, {0x1080a, 0x10835}, {0x10837, 0x10838},
+  {0x1083c, 0x1083c}, {0x1083f, 0x10855}, {0x10860, 0x10876}, {0x10880, 0x1089e}, {0x108e0, 0x108f2}, {0x108f4, 0x108f5}, {0x10900, 0x10915}, {0x10920, 0x10939},
+  {0x10980, 0x109b7}, {0x109be, 0x109bf}, {0x10a00, 0x10a03}, {0x10a05, 0x10a06}, {0x10a0c, 0x10a13}, {0x10a15, 0x10a17}, {0x10a19, 0x10a35}, {0x10a38, 0x10a3a},
+  {0x10a3f, 0x10a3f}, {0x10a60, 0x10a7c}, {0x10a80, 0x10a9c}, {0x10ac0, 0x10ac7}, {0x10ac9, 0x10ae6}, {0x10b00, 0x10b35}, {0x10b40, 0x10b55}, {0x10b60, 0x10b72},
+  {0x10b80, 0x10b91}, {0x10c00, 0x10c48}, {0x10c80, 0x10cb2}, {0x10cc0, 0x10cf2}, {0x10d00, 0x10d27}, {0x10d30, 0x10d39}, {0x10e80, 0x10ea9}, {0x10eab, 0x10eac},
+  {0x10eb0, 0x10eb1}, {0x10f00, 0x10f1c}, {0x10f27, 0x10f27}, {0x10f30, 0x10f50}, {0x10f70, 0x10f85}, {0x10fb0, 0x10fc4}, {0x10fe0, 0x10ff6}, {0x11000, 0x11046},
+  {0x11066, 0x11075}, {0x1107f, 0x110ba}, {0x110c2, 0x110c2}, {0x110d0, 0x110e8}, {0x110f0, 0x110f9}, {0x11100, 0x11134}, {0x11136, 0x1113f}, {0x11144, 0x11147},
+  {0x11150, 0x11173}, {0x11176, 0x11176}, {0x11180, 0x111c4}, {0x111c9, 0x111cc}, {0x111ce, 0x111da}, {0x111dc, 0x111dc}, {0x11200, 0x11211}, {0x11213, 0x11237},
+  {0x1123e, 0x1123e}, {0x11280, 0x11286}, {0x11288, 0x11288}, {0x1128a, 0x1128d}, {0x1128f, 0x1129d}, {0x1129f, 0x112a8}, {0x112b0, 0x112ea}, {0x112f0, 0x112f9},
+  {0x11300, 0x11303}, {0x11305, 0x1130c}, {0x1130f, 0x11310}, {0x11313, 0x11328}, {0x1132a, 0x11330}, {0x11332, 0x11333}, {0x11335, 0x11339}, {0x1133b, 0x11344},
+  {0x11347, 0x11348}, {0x1134b, 0x1134d}, {0x11350, 0x11350}, {0x11357, 0x11357}, {0x1135d, 0x11363}, {0x11366, 0x1136c}, {0x11370, 0x11374}, {0x11400, 0x1144a},
+  {0x11450, 0x11459}, {0x1145e, 0x11461}, {0x11480, 0x114c5}, {0x114c7, 0x114c7}, {0x114d0, 0x114d9}, {0x11580, 0x115b5}, {0x115b8, 0x115c0}, {0x115d8, 0x115dd},
+  {0x11600, 0x11640}, {0x11644, 0x11644}, {0x11650, 0x11659}, {0x11680, 0x116b8}, {0x116c0, 0x116c9}, {0x11700, 0x1171a}, {0x1171d, 0x1172b}, {0x11730, 0x11739},
+  {0x11740, 0x11746}, {0x11800, 0x1183a}, {0x118a0, 0x118e9}, {0x118ff, 0x11906}, {0x11909, 0x11909}, {0x1190c, 0x11913}, {0x11915, 0x11916}, {0x11918, 0x11935},
+  {0x11937, 0x11938}, {0x1193b, 0x11943}, {0x11950, 0x11959}, {0x119a0, 0x119a7}, {0x119aa, 0x119d7}, {0x119da, 0x119e1}, {0x119e3, 0x119e4}, {0x11a00, 0x11a3e},
+  {0x11a47, 0x11a47}, {0x11a50, 0x11a99}, {0x11a9d, 0x11a9d}, {0x11ab0, 0x11af8}, {0x11c00, 0x11c08}, {0x11c0a, 0x11c36}, {0x11c38, 0x11c40}, {0x11c50, 0x11c59},
+  {0x11c72, 0x11c8f}, {0x11c92, 0x11ca7}, {0x11ca9, 0x11cb6}, {0x11d00, 0x11d06}, {0x11d08, 0x11d09}, {0x11d0b, 0x11d36}, {0x11d3a, 0x11d3a}, {0x11d3c, 0x11d3d},
+  {0x11d3f, 0x11d47}, {0x11d50, 0x11d59}, {0x11d60, 0x11d65}, {0x11d67, 0x11d68}, {0x11d6a, 0x11d8e}, {0x11d90, 0x11d91}, {0x11d93, 0x11d98}, {0x11da0, 0x11da9},
+  {0x11ee0, 0x11ef6}, {0x11fb0, 0x11fb0}, {0x12000, 0x12399}, {0x12400, 0x1246e}, {0x12480, 0x12543}, {0x12f90, 0x12ff0}, {0x13000, 0x1342e}, {0x14400, 0x14646},
+  {0x16800, 0x16a38}, {0x16a40, 0x16a5e}, {0x16a60, 0x16a69}, {0x16a70, 0x16abe}, {0x16ac0, 0x16ac9}, {0x16ad0, 0x16aed}, {0x16af0, 0x16af4}, {0x16b00, 0x16b36},
+  {0x16b40, 0x16b43}, {0x16b50, 0x16b59}, {0x16b63, 0x16b77}, {0x16b7d, 0x16b8f}, {0x16e40, 0x16e7f}, {0x16f00, 0x16f4a}, {0x16f4f, 0x16f87}, {0x16f8f, 0x16f9f},
+  {0x16fe0, 0x16fe1}, {0x16fe3, 0x16fe4}, {0x16ff0, 0x16ff1}, {0x17000, 0x187f7}, {0x18800, 0x18cd5}, {0x18d00, 0x18d08}, {0x1aff0, 0x1aff3}, {0x1aff5, 0x1affb},
+  {0x1affd, 0x1affe}, {0x1b000, 0x1b122}, {0x1b150, 0x1b152}, {0x1b164, 0x1b167}, {0x1b170, 0x1b2fb}, {0x1bc00, 0x1bc6a}, {0x1bc70, 0x1bc7c}, {0x1bc80, 0x1bc88},
+  {0x1bc90, 0x1bc99}, {0x1bc9d, 0x1bc9e}, {0x1cf00, 0x1cf2d}, {0x1cf30, 0x1cf46}, {0x1d165, 0x1d169}, {0x1d16d, 0x1d172}, {0x1d17b, 0x1d182}, {0x1d185, 0x1d18b},
+  {0x1d1aa, 0x1d1ad}, {0x1d242, 0x1d244}, {0x1d400, 0x1d454}, {0x1d456, 0x1d49c}, {0x1d49e, 0x1d49f}, {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, {0x1d4a9, 0x1d4ac},
+  {0x1d4ae, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3}, {0x1d4c5, 0x1d505}, {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514}, {0x1d516, 0x1d51c}, {0x1d51e, 0x1d539},
+  {0x1d53b, 0x1d53e}, {0x1d540, 0x1d544}, {0x1d546, 0x1d546}, {0x1d54a, 0x1d550}, {0x1d552, 0x1d6a5}, {0x1d6a8, 0x1d6c0}, {0x1d6c2, 0x1d6da}, {0x1d6dc, 0x1d6fa},
+  {0x1d6fc, 0x1d714}, {0x1d716, 0x1d734}, {0x1d736, 0x1d74e}, {0x1d750, 0x1d76e}, {0x1d770, 0x1d788}, {0x1d78a, 0x1d7a8}, {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7cb},
+  {0x1d7ce, 0x1d7ff}, {0x1da00, 0x1da36}, {0x1da3b, 0x1da6c}, {0x1da75, 0x1da75}, {0x1da84, 0x1da84}, {0x1da9b, 0x1da9f}, {0x1daa1, 0x1daaf}, {0x1df00, 0x1df1e},
+  {0x1e000, 0x1e006}, {0x1e008, 0x1e018}, {0x1e01b, 0x1e021}, {0x1e023, 0x1e024}, {0x1e026, 0x1e02a}, {0x1e100, 0x1e12c}, {0x1e130, 0x1e13d}, {0x1e140, 0x1e149},
+  {0x1e14e, 0x1e14e}, {0x1e290, 0x1e2ae}, {0x1e2c0, 0x1e2f9}, {0x1e7e0, 0x1e7e6}, {0x1e7e8, 0x1e7eb}, {0x1e7ed, 0x1e7ee}, {0x1e7f0, 0x1e7fe}, {0x1e800, 0x1e8c4},
+  {0x1e8d0, 0x1e8d6}, {0x1e900, 0x1e94b}, {0x1e950, 0x1e959}, {0x1ee00, 0x1ee03}, {0x1ee05, 0x1ee1f}, {0x1ee21, 0x1ee22}, {0x1ee24, 0x1ee24}, {0x1ee27, 0x1ee27},
+  {0x1ee29, 0x1ee32}, {0x1ee34, 0x1ee37}, {0x1ee39, 0x1ee39}, {0x1ee3b, 0x1ee3b}, {0x1ee42, 0x1ee42}, {0x1ee47, 0x1ee47}, {0x1ee49, 0x1ee49}, {0x1ee4b, 0x1ee4b},
+  {0x1ee4d, 0x1ee4f}, {0x1ee51, 0x1ee52}, {0x1ee54, 0x1ee54}, {0x1ee57, 0x1ee57}, {0x1ee59, 0x1ee59}, {0x1ee5b, 0x1ee5b}, {0x1ee5d, 0x1ee5d}, {0x1ee5f, 0x1ee5f},
+  {0x1ee61, 0x1ee62}, {0x1ee64, 0x1ee64}, {0x1ee67, 0x1ee6a}, {0x1ee6c, 0x1ee72}, {0x1ee74, 0x1ee77}, {0x1ee79, 0x1ee7c}, {0x1ee7e, 0x1ee7e}, {0x1ee80, 0x1ee89},
+  {0x1ee8b, 0x1ee9b}, {0x1eea1, 0x1eea3}, {0x1eea5, 0x1eea9}, {0x1eeab, 0x1eebb}, {0x1fbf0, 0x1fbf9}, {0x20000, 0x2a6df}, {0x2a700, 0x2b738}, {0x2b740, 0x2b81d},
+  {0x2b820, 0x2cea1}, {0x2ceb0, 0x2ebe0}, {0x2f800, 0x2fa1d}, {0x30000, 0x3134a}, {0xe0100, 0xe01ef},
+};
 
 static bool ts_lex(TSLexer *lexer, TSStateId state) {
   START_LEXER();
@@ -9672,179 +6233,183 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
   switch (state) {
     case 0:
       if (eof) ADVANCE(124);
-      if (lookahead == '!') ADVANCE(202);
-      if (lookahead == '"') ADVANCE(301);
-      if (lookahead == '#') ADVANCE(77);
-      if (sym_identifier_character_set_1(lookahead)) ADVANCE(325);
-      if (lookahead == '%') ADVANCE(219);
-      if (lookahead == '&') ADVANCE(228);
-      if (lookahead == '\'') ADVANCE(292);
-      if (lookahead == '(') ADVANCE(128);
-      if (lookahead == ')') ADVANCE(131);
-      if (lookahead == '*') ADVANCE(215);
-      if (lookahead == '+') ADVANCE(210);
-      if (lookahead == ',') ADVANCE(130);
-      if (lookahead == '-') ADVANCE(205);
-      if (lookahead == '.') ADVANCE(268);
-      if (lookahead == '/') ADVANCE(217);
-      if (lookahead == '0') ADVANCE(274);
-      if (lookahead == ':') ADVANCE(252);
-      if (lookahead == ';') ADVANCE(241);
-      if (lookahead == '<') ADVANCE(235);
-      if (lookahead == '=') ADVANCE(251);
-      if (lookahead == '>') ADVANCE(231);
-      if (lookahead == '?') ADVANCE(253);
-      if (lookahead == 'L') ADVANCE(313);
-      if (lookahead == 'U') ADVANCE(315);
-      if (lookahead == '[') ADVANCE(248);
-      if (lookahead == '\\') ADVANCE(2);
-      if (lookahead == ']') ADVANCE(249);
-      if (lookahead == '^') ADVANCE(225);
-      if (lookahead == 'u') ADVANCE(317);
-      if (lookahead == '{') ADVANCE(245);
-      if (lookahead == '|') ADVANCE(222);
-      if (lookahead == '}') ADVANCE(246);
-      if (lookahead == '~') ADVANCE(203);
+      ADVANCE_MAP(
+        '!', 202,
+        '"', 301,
+        '#', 79,
+        '%', 219,
+        '&', 228,
+        '\'', 292,
+        '(', 128,
+        ')', 131,
+        '*', 215,
+        '+', 210,
+        ',', 130,
+        '-', 205,
+        '.', 268,
+        '/', 217,
+        '0', 274,
+        ':', 252,
+        ';', 241,
+        '<', 235,
+        '=', 251,
+        '>', 231,
+        '?', 253,
+        'L', 313,
+        'U', 315,
+        '[', 248,
+        '\\', 2,
+        ']', 249,
+        '^', 225,
+        'u', 317,
+        '{', 245,
+        '|', 222,
+        '}', 246,
+        '~', 203,
+      );
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(122)
+          lookahead == ' ') SKIP(122);
       if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
     case 1:
-      if (lookahead == '\n') SKIP(44)
+      if (lookahead == '\n') SKIP(45);
       END_STATE();
     case 2:
-      if (lookahead == '\n') SKIP(44)
-      if (lookahead == '\r') SKIP(1)
-      if (lookahead == 'U') ADVANCE(117);
-      if (lookahead == 'u') ADVANCE(109);
+      if (lookahead == '\n') SKIP(45);
+      if (lookahead == '\r') SKIP(1);
+      if (lookahead == 'U') ADVANCE(119);
+      if (lookahead == 'u') ADVANCE(111);
       END_STATE();
     case 3:
-      if (lookahead == '\n') SKIP(47)
+      if (lookahead == '\n') SKIP(48);
       END_STATE();
     case 4:
-      if (lookahead == '\n') SKIP(47)
-      if (lookahead == '\r') SKIP(3)
-      if (lookahead == 'U') ADVANCE(117);
-      if (lookahead == 'u') ADVANCE(109);
+      if (lookahead == '\n') SKIP(48);
+      if (lookahead == '\r') SKIP(3);
+      if (lookahead == 'U') ADVANCE(119);
+      if (lookahead == 'u') ADVANCE(111);
       END_STATE();
     case 5:
-      if (lookahead == '\n') SKIP(46)
+      if (lookahead == '\n') SKIP(47);
       END_STATE();
     case 6:
-      if (lookahead == '\n') SKIP(46)
-      if (lookahead == '\r') SKIP(5)
-      if (lookahead == 'U') ADVANCE(117);
-      if (lookahead == 'u') ADVANCE(109);
+      if (lookahead == '\n') SKIP(47);
+      if (lookahead == '\r') SKIP(5);
+      if (lookahead == 'U') ADVANCE(119);
+      if (lookahead == 'u') ADVANCE(111);
       END_STATE();
     case 7:
-      if (lookahead == '\n') SKIP(49)
+      if (lookahead == '\n') SKIP(50);
       END_STATE();
     case 8:
-      if (lookahead == '\n') SKIP(49)
-      if (lookahead == '\r') SKIP(7)
-      if (lookahead == 'U') ADVANCE(117);
-      if (lookahead == 'u') ADVANCE(109);
+      if (lookahead == '\n') SKIP(50);
+      if (lookahead == '\r') SKIP(7);
+      if (lookahead == 'U') ADVANCE(119);
+      if (lookahead == 'u') ADVANCE(111);
       END_STATE();
     case 9:
-      if (lookahead == '\n') SKIP(54)
+      if (lookahead == '\n') SKIP(55);
       END_STATE();
     case 10:
-      if (lookahead == '\n') SKIP(54)
-      if (lookahead == '\r') SKIP(9)
-      if (lookahead == 'U') ADVANCE(117);
-      if (lookahead == 'u') ADVANCE(109);
+      if (lookahead == '\n') SKIP(55);
+      if (lookahead == '\r') SKIP(9);
+      if (lookahead == 'U') ADVANCE(119);
+      if (lookahead == 'u') ADVANCE(111);
       END_STATE();
     case 11:
-      if (lookahead == '\n') SKIP(55)
+      if (lookahead == '\n') SKIP(56);
       END_STATE();
     case 12:
-      if (lookahead == '\n') SKIP(55)
-      if (lookahead == '\r') SKIP(11)
-      if (lookahead == 'U') ADVANCE(117);
-      if (lookahead == 'u') ADVANCE(109);
+      if (lookahead == '\n') SKIP(56);
+      if (lookahead == '\r') SKIP(11);
+      if (lookahead == 'U') ADVANCE(119);
+      if (lookahead == 'u') ADVANCE(111);
       END_STATE();
     case 13:
-      if (lookahead == '\n') SKIP(59)
+      if (lookahead == '\n') SKIP(60);
       END_STATE();
     case 14:
-      if (lookahead == '\n') SKIP(59)
-      if (lookahead == '\r') SKIP(13)
-      if (lookahead == 'U') ADVANCE(117);
-      if (lookahead == 'u') ADVANCE(109);
+      if (lookahead == '\n') SKIP(60);
+      if (lookahead == '\r') SKIP(13);
+      if (lookahead == 'U') ADVANCE(119);
+      if (lookahead == 'u') ADVANCE(111);
       END_STATE();
     case 15:
-      if (lookahead == '\n') SKIP(51)
+      if (lookahead == '\n') SKIP(52);
       END_STATE();
     case 16:
-      if (lookahead == '\n') SKIP(51)
-      if (lookahead == '\r') SKIP(15)
-      if (lookahead == 'U') ADVANCE(117);
-      if (lookahead == 'u') ADVANCE(109);
+      if (lookahead == '\n') SKIP(52);
+      if (lookahead == '\r') SKIP(15);
+      if (lookahead == 'U') ADVANCE(119);
+      if (lookahead == 'u') ADVANCE(111);
       END_STATE();
     case 17:
-      if (lookahead == '\n') SKIP(53)
+      if (lookahead == '\n') SKIP(54);
       END_STATE();
     case 18:
-      if (lookahead == '\n') SKIP(53)
-      if (lookahead == '\r') SKIP(17)
-      if (lookahead == 'U') ADVANCE(117);
-      if (lookahead == 'u') ADVANCE(109);
+      if (lookahead == '\n') SKIP(54);
+      if (lookahead == '\r') SKIP(17);
+      if (lookahead == 'U') ADVANCE(119);
+      if (lookahead == 'u') ADVANCE(111);
       END_STATE();
     case 19:
-      if (lookahead == '\n') SKIP(50)
+      if (lookahead == '\n') SKIP(51);
       END_STATE();
     case 20:
-      if (lookahead == '\n') SKIP(50)
-      if (lookahead == '\r') SKIP(19)
-      if (lookahead == 'U') ADVANCE(117);
-      if (lookahead == 'u') ADVANCE(109);
+      if (lookahead == '\n') SKIP(51);
+      if (lookahead == '\r') SKIP(19);
+      if (lookahead == 'U') ADVANCE(119);
+      if (lookahead == 'u') ADVANCE(111);
       END_STATE();
     case 21:
-      if (lookahead == '\n') SKIP(23)
+      if (lookahead == '\n') SKIP(23);
       END_STATE();
     case 22:
-      if (lookahead == '\n') SKIP(23)
-      if (lookahead == '\r') SKIP(21)
+      if (lookahead == '\n') SKIP(23);
+      if (lookahead == '\r') SKIP(21);
       END_STATE();
     case 23:
-      if (lookahead == '\n') ADVANCE(133);
-      if (lookahead == '!') ADVANCE(70);
-      if (lookahead == '%') ADVANCE(218);
-      if (lookahead == '&') ADVANCE(227);
-      if (lookahead == '(') ADVANCE(200);
-      if (lookahead == '*') ADVANCE(214);
-      if (lookahead == '+') ADVANCE(209);
-      if (lookahead == '-') ADVANCE(204);
-      if (lookahead == '/') ADVANCE(216);
-      if (lookahead == '<') ADVANCE(236);
-      if (lookahead == '=') ADVANCE(71);
-      if (lookahead == '>') ADVANCE(232);
-      if (lookahead == '\\') SKIP(22)
+      ADVANCE_MAP(
+        '\n', 133,
+        '!', 72,
+        '%', 218,
+        '&', 227,
+        '(', 200,
+        '*', 214,
+        '+', 209,
+        '-', 204,
+        '/', 216,
+        '<', 236,
+        '=', 73,
+        '>', 232,
+      );
+      if (lookahead == '\\') SKIP(22);
       if (lookahead == '^') ADVANCE(224);
       if (lookahead == '|') ADVANCE(223);
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(23)
+          lookahead == ' ') SKIP(23);
       END_STATE();
     case 24:
-      if (lookahead == '\n') SKIP(58)
+      if (lookahead == '\n') SKIP(59);
       END_STATE();
     case 25:
-      if (lookahead == '\n') SKIP(58)
-      if (lookahead == '\r') SKIP(24)
-      if (lookahead == 'U') ADVANCE(117);
-      if (lookahead == 'u') ADVANCE(109);
+      if (lookahead == '\n') SKIP(59);
+      if (lookahead == '\r') SKIP(24);
+      if (lookahead == 'U') ADVANCE(119);
+      if (lookahead == 'u') ADVANCE(111);
       END_STATE();
     case 26:
-      if (lookahead == '\n') SKIP(57)
+      if (lookahead == '\n') SKIP(57);
       END_STATE();
     case 27:
-      if (lookahead == '\n') SKIP(57)
-      if (lookahead == '\r') SKIP(26)
-      if (lookahead == 'U') ADVANCE(117);
-      if (lookahead == 'u') ADVANCE(109);
+      if (lookahead == '\n') SKIP(57);
+      if (lookahead == '\r') SKIP(26);
+      if (lookahead == 'U') ADVANCE(119);
+      if (lookahead == 'u') ADVANCE(111);
       END_STATE();
     case 28:
-      if (lookahead == '\n') SKIP(56)
+      if (lookahead == '\n') SKIP(58);
       if (lookahead == '"') ADVANCE(301);
       if (lookahead == '/') ADVANCE(302);
       if (lookahead == '\\') ADVANCE(29);
@@ -9855,9 +6420,9 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
     case 29:
       if (lookahead == '\n') ADVANCE(308);
       if (lookahead == '\r') ADVANCE(307);
-      if (lookahead == 'U') ADVANCE(118);
-      if (lookahead == 'u') ADVANCE(110);
-      if (lookahead == 'x') ADVANCE(106);
+      if (lookahead == 'U') ADVANCE(120);
+      if (lookahead == 'u') ADVANCE(112);
+      if (lookahead == 'x') ADVANCE(108);
       if (('0' <= lookahead && lookahead <= '9')) ADVANCE(310);
       if (lookahead != 0) ADVANCE(307);
       END_STATE();
@@ -9865,67 +6430,67 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       if (lookahead == '\n') ADVANCE(126);
       if (lookahead == '\r') ADVANCE(35);
       if (lookahead == '(') ADVANCE(128);
-      if (lookahead == '/') ADVANCE(153);
+      if (lookahead == '/') ADVANCE(157);
       if (lookahead == '\\') ADVANCE(149);
       if (('\t' <= lookahead && lookahead <= '\f') ||
-          lookahead == ' ') SKIP(68)
-      if (lookahead != 0) ADVANCE(162);
+          lookahead == ' ') SKIP(69);
+      if (lookahead != 0) ADVANCE(167);
       END_STATE();
     case 31:
       if (lookahead == '\n') ADVANCE(126);
       if (lookahead == '\r') ADVANCE(35);
-      if (lookahead == '/') ADVANCE(153);
+      if (lookahead == '/') ADVANCE(157);
       if (lookahead == '\\') ADVANCE(149);
       if (('\t' <= lookahead && lookahead <= '\f') ||
-          lookahead == ' ') SKIP(68)
-      if (lookahead != 0) ADVANCE(162);
+          lookahead == ' ') SKIP(69);
+      if (lookahead != 0) ADVANCE(167);
       END_STATE();
     case 32:
       if (lookahead == '\n') ADVANCE(126);
       if (lookahead == '\r') ADVANCE(34);
       if (lookahead == '(') ADVANCE(200);
-      if (lookahead == '/') ADVANCE(62);
-      if (lookahead == '\\') SKIP(39)
+      if (lookahead == '/') ADVANCE(63);
+      if (lookahead == '\\') SKIP(39);
       if (('\t' <= lookahead && lookahead <= '\f') ||
-          lookahead == ' ') SKIP(61)
+          lookahead == ' ') SKIP(62);
       END_STATE();
     case 33:
       if (lookahead == '\n') ADVANCE(126);
       if (lookahead == '\r') ADVANCE(36);
-      if (sym_identifier_character_set_2(lookahead)) ADVANCE(326);
-      if (lookahead == '/') ADVANCE(153);
+      if (lookahead == '/') ADVANCE(157);
       if (lookahead == '\\') ADVANCE(151);
       if (('\t' <= lookahead && lookahead <= '\f') ||
-          lookahead == ' ') SKIP(119)
-      if (lookahead != 0) ADVANCE(162);
+          lookahead == ' ') SKIP(70);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(326);
+      if (lookahead != 0) ADVANCE(167);
       END_STATE();
     case 34:
       if (lookahead == '\n') ADVANCE(126);
       if (lookahead == '(') ADVANCE(200);
-      if (lookahead == '/') ADVANCE(62);
-      if (lookahead == '\\') SKIP(39)
+      if (lookahead == '/') ADVANCE(63);
+      if (lookahead == '\\') SKIP(39);
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(61)
+          lookahead == ' ') SKIP(62);
       END_STATE();
     case 35:
       if (lookahead == '\n') ADVANCE(126);
-      if (lookahead == '/') ADVANCE(153);
+      if (lookahead == '/') ADVANCE(157);
       if (lookahead == '\\') ADVANCE(149);
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(68)
-      if (lookahead != 0) ADVANCE(162);
+          lookahead == ' ') SKIP(69);
+      if (lookahead != 0) ADVANCE(167);
       END_STATE();
     case 36:
       if (lookahead == '\n') ADVANCE(126);
-      if (sym_identifier_character_set_2(lookahead)) ADVANCE(326);
-      if (lookahead == '/') ADVANCE(153);
+      if (lookahead == '/') ADVANCE(157);
       if (lookahead == '\\') ADVANCE(151);
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(119)
-      if (lookahead != 0) ADVANCE(162);
+          lookahead == ' ') SKIP(70);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(326);
+      if (lookahead != 0) ADVANCE(167);
       END_STATE();
     case 37:
-      if (lookahead == '\n') SKIP(60)
+      if (lookahead == '\n') SKIP(61);
       if (lookahead == '\'') ADVANCE(292);
       if (lookahead == '/') ADVANCE(295);
       if (lookahead == '\\') ADVANCE(294);
@@ -9934,665 +6499,692 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       if (lookahead != 0) ADVANCE(293);
       END_STATE();
     case 38:
-      if (lookahead == '\n') SKIP(61)
+      if (lookahead == '\n') SKIP(62);
       END_STATE();
     case 39:
-      if (lookahead == '\n') SKIP(61)
-      if (lookahead == '\r') SKIP(38)
+      if (lookahead == '\n') SKIP(62);
+      if (lookahead == '\r') SKIP(38);
       END_STATE();
     case 40:
-      if (lookahead == '\n') SKIP(45)
+      if (lookahead == '\n') SKIP(46);
       END_STATE();
     case 41:
-      if (lookahead == '\n') SKIP(45)
-      if (lookahead == '\r') SKIP(40)
-      if (lookahead == 'U') ADVANCE(117);
-      if (lookahead == 'u') ADVANCE(109);
+      if (lookahead == '\n') SKIP(46);
+      if (lookahead == '\r') SKIP(40);
+      if (lookahead == 'U') ADVANCE(119);
+      if (lookahead == 'u') ADVANCE(111);
       END_STATE();
     case 42:
-      if (lookahead == '\n') SKIP(52)
+      if (lookahead == '\n') SKIP(53);
       END_STATE();
     case 43:
-      if (lookahead == '\n') SKIP(52)
-      if (lookahead == '\r') SKIP(42)
-      if (lookahead == 'U') ADVANCE(117);
-      if (lookahead == 'u') ADVANCE(109);
+      if (lookahead == '\n') SKIP(53);
+      if (lookahead == '\r') SKIP(42);
+      if (lookahead == 'U') ADVANCE(119);
+      if (lookahead == 'u') ADVANCE(111);
       END_STATE();
     case 44:
-      if (lookahead == '!') ADVANCE(202);
-      if (lookahead == '"') ADVANCE(301);
-      if (lookahead == '#') ADVANCE(77);
-      if (sym_identifier_character_set_1(lookahead)) ADVANCE(325);
-      if (lookahead == '%') ADVANCE(219);
-      if (lookahead == '&') ADVANCE(228);
-      if (lookahead == '\'') ADVANCE(292);
-      if (lookahead == '(') ADVANCE(200);
-      if (lookahead == ')') ADVANCE(131);
-      if (lookahead == '*') ADVANCE(215);
-      if (lookahead == '+') ADVANCE(210);
-      if (lookahead == ',') ADVANCE(130);
-      if (lookahead == '-') ADVANCE(205);
-      if (lookahead == '.') ADVANCE(268);
-      if (lookahead == '/') ADVANCE(217);
-      if (lookahead == '0') ADVANCE(274);
-      if (lookahead == ':') ADVANCE(252);
-      if (lookahead == ';') ADVANCE(241);
-      if (lookahead == '<') ADVANCE(235);
-      if (lookahead == '=') ADVANCE(251);
-      if (lookahead == '>') ADVANCE(231);
-      if (lookahead == '?') ADVANCE(253);
-      if (lookahead == 'L') ADVANCE(313);
-      if (lookahead == 'U') ADVANCE(315);
-      if (lookahead == '[') ADVANCE(248);
-      if (lookahead == '\\') ADVANCE(2);
-      if (lookahead == ']') ADVANCE(249);
-      if (lookahead == '^') ADVANCE(225);
-      if (lookahead == 'u') ADVANCE(317);
-      if (lookahead == '{') ADVANCE(245);
-      if (lookahead == '|') ADVANCE(222);
-      if (lookahead == '}') ADVANCE(246);
-      if (lookahead == '~') ADVANCE(203);
-      if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(44)
-      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
+      if (lookahead == '\r') ADVANCE(335);
+      if (lookahead == '\\') ADVANCE(329);
+      if (lookahead != 0) ADVANCE(334);
       END_STATE();
     case 45:
-      if (lookahead == '!') ADVANCE(202);
-      if (lookahead == '"') ADVANCE(301);
-      if (lookahead == '#') ADVANCE(85);
-      if (sym_identifier_character_set_1(lookahead)) ADVANCE(325);
-      if (lookahead == '%') ADVANCE(219);
-      if (lookahead == '&') ADVANCE(228);
-      if (lookahead == '\'') ADVANCE(292);
-      if (lookahead == '(') ADVANCE(200);
-      if (lookahead == ')') ADVANCE(131);
-      if (lookahead == '*') ADVANCE(215);
-      if (lookahead == '+') ADVANCE(210);
-      if (lookahead == ',') ADVANCE(130);
-      if (lookahead == '-') ADVANCE(205);
-      if (lookahead == '.') ADVANCE(268);
-      if (lookahead == '/') ADVANCE(217);
-      if (lookahead == '0') ADVANCE(274);
-      if (lookahead == ':') ADVANCE(252);
-      if (lookahead == ';') ADVANCE(241);
-      if (lookahead == '<') ADVANCE(235);
-      if (lookahead == '=') ADVANCE(251);
-      if (lookahead == '>') ADVANCE(231);
-      if (lookahead == '?') ADVANCE(253);
-      if (lookahead == 'L') ADVANCE(313);
-      if (lookahead == 'U') ADVANCE(315);
-      if (lookahead == '[') ADVANCE(247);
-      if (lookahead == '\\') ADVANCE(41);
-      if (lookahead == ']') ADVANCE(249);
-      if (lookahead == '^') ADVANCE(225);
-      if (lookahead == 'u') ADVANCE(317);
-      if (lookahead == '{') ADVANCE(245);
-      if (lookahead == '|') ADVANCE(222);
-      if (lookahead == '}') ADVANCE(246);
-      if (lookahead == '~') ADVANCE(203);
+      ADVANCE_MAP(
+        '!', 202,
+        '"', 301,
+        '#', 79,
+        '%', 219,
+        '&', 228,
+        '\'', 292,
+        '(', 200,
+        ')', 131,
+        '*', 215,
+        '+', 210,
+        ',', 130,
+        '-', 205,
+        '.', 268,
+        '/', 217,
+        '0', 274,
+        ':', 252,
+        ';', 241,
+        '<', 235,
+        '=', 251,
+        '>', 231,
+        '?', 253,
+        'L', 313,
+        'U', 315,
+        '[', 248,
+        '\\', 2,
+        ']', 249,
+        '^', 225,
+        'u', 317,
+        '{', 245,
+        '|', 222,
+        '}', 246,
+        '~', 203,
+      );
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(45)
+          lookahead == ' ') SKIP(45);
       if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
     case 46:
-      if (lookahead == '!') ADVANCE(201);
-      if (lookahead == '"') ADVANCE(301);
-      if (lookahead == '#') ADVANCE(77);
-      if (sym_identifier_character_set_1(lookahead)) ADVANCE(325);
-      if (lookahead == '&') ADVANCE(226);
-      if (lookahead == '\'') ADVANCE(292);
-      if (lookahead == '(') ADVANCE(200);
-      if (lookahead == '*') ADVANCE(214);
-      if (lookahead == '+') ADVANCE(211);
-      if (lookahead == ',') ADVANCE(130);
-      if (lookahead == '-') ADVANCE(206);
-      if (lookahead == '.') ADVANCE(98);
-      if (lookahead == '/') ADVANCE(62);
-      if (lookahead == '0') ADVANCE(274);
-      if (lookahead == ':') ADVANCE(69);
-      if (lookahead == ';') ADVANCE(241);
-      if (lookahead == 'L') ADVANCE(313);
-      if (lookahead == 'U') ADVANCE(315);
-      if (lookahead == '[') ADVANCE(75);
-      if (lookahead == '\\') ADVANCE(6);
-      if (lookahead == ']') ADVANCE(76);
-      if (lookahead == 'u') ADVANCE(317);
-      if (lookahead == '{') ADVANCE(245);
-      if (lookahead == '~') ADVANCE(203);
+      ADVANCE_MAP(
+        '!', 202,
+        '"', 301,
+        '#', 87,
+        '%', 219,
+        '&', 228,
+        '\'', 292,
+        '(', 200,
+        ')', 131,
+        '*', 215,
+        '+', 210,
+        ',', 130,
+        '-', 205,
+        '.', 268,
+        '/', 217,
+        '0', 274,
+        ':', 252,
+        ';', 241,
+        '<', 235,
+        '=', 251,
+        '>', 231,
+        '?', 253,
+        'L', 313,
+        'U', 315,
+        '[', 247,
+        '\\', 41,
+        ']', 249,
+        '^', 225,
+        'u', 317,
+        '{', 245,
+        '|', 222,
+        '}', 246,
+        '~', 203,
+      );
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(46)
+          lookahead == ' ') SKIP(46);
       if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
     case 47:
-      if (lookahead == '!') ADVANCE(201);
-      if (lookahead == '"') ADVANCE(301);
-      if (lookahead == '#') ADVANCE(81);
-      if (sym_identifier_character_set_1(lookahead)) ADVANCE(325);
-      if (lookahead == '&') ADVANCE(226);
-      if (lookahead == '\'') ADVANCE(292);
-      if (lookahead == '(') ADVANCE(200);
-      if (lookahead == ')') ADVANCE(131);
-      if (lookahead == '*') ADVANCE(214);
-      if (lookahead == '+') ADVANCE(211);
-      if (lookahead == ',') ADVANCE(130);
-      if (lookahead == '-') ADVANCE(206);
-      if (lookahead == '.') ADVANCE(269);
-      if (lookahead == '/') ADVANCE(62);
-      if (lookahead == '0') ADVANCE(274);
-      if (lookahead == ':') ADVANCE(252);
-      if (lookahead == ';') ADVANCE(241);
-      if (lookahead == '=') ADVANCE(250);
-      if (lookahead == 'L') ADVANCE(313);
-      if (lookahead == 'U') ADVANCE(315);
-      if (lookahead == '[') ADVANCE(248);
-      if (lookahead == '\\') ADVANCE(4);
-      if (lookahead == ']') ADVANCE(249);
-      if (lookahead == 'u') ADVANCE(317);
-      if (lookahead == '{') ADVANCE(245);
-      if (lookahead == '}') ADVANCE(246);
-      if (lookahead == '~') ADVANCE(203);
+      ADVANCE_MAP(
+        '!', 201,
+        '"', 301,
+        '#', 79,
+        '&', 226,
+        '\'', 292,
+        '(', 200,
+        '*', 214,
+        '+', 211,
+        ',', 130,
+        '-', 206,
+        '.', 100,
+        '/', 63,
+        '0', 274,
+        ':', 71,
+        ';', 241,
+        'L', 313,
+        'U', 315,
+        '[', 77,
+        '\\', 6,
+        ']', 78,
+        'u', 317,
+        '{', 245,
+        '~', 203,
+      );
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(47)
+          lookahead == ' ') SKIP(47);
       if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
     case 48:
-      if (lookahead == '!') ADVANCE(201);
-      if (lookahead == '"') ADVANCE(301);
-      if (lookahead == '#') ADVANCE(79);
-      if (sym_identifier_character_set_1(lookahead)) ADVANCE(325);
-      if (lookahead == '&') ADVANCE(226);
-      if (lookahead == '\'') ADVANCE(292);
-      if (lookahead == '(') ADVANCE(200);
-      if (lookahead == '*') ADVANCE(214);
-      if (lookahead == '+') ADVANCE(211);
-      if (lookahead == '-') ADVANCE(206);
-      if (lookahead == '.') ADVANCE(98);
-      if (lookahead == '/') ADVANCE(62);
-      if (lookahead == '0') ADVANCE(274);
-      if (lookahead == ':') ADVANCE(336);
-      if (lookahead == ';') ADVANCE(241);
-      if (lookahead == 'L') ADVANCE(313);
-      if (lookahead == 'U') ADVANCE(315);
-      if (lookahead == '[') ADVANCE(75);
-      if (lookahead == '\\') ADVANCE(8);
-      if (lookahead == 'u') ADVANCE(317);
-      if (lookahead == '{') ADVANCE(245);
-      if (lookahead == '~') ADVANCE(203);
-      if (lookahead == '\t' ||
-          lookahead == ' ') ADVANCE(48);
-      if (('\n' <= lookahead && lookahead <= '\r')) SKIP(49)
+      ADVANCE_MAP(
+        '!', 201,
+        '"', 301,
+        '#', 83,
+        '&', 226,
+        '\'', 292,
+        '(', 200,
+        ')', 131,
+        '*', 214,
+        '+', 211,
+        ',', 130,
+        '-', 206,
+        '.', 269,
+        '/', 63,
+        '0', 274,
+        ':', 252,
+        ';', 241,
+        '=', 250,
+        'L', 313,
+        'U', 315,
+        '[', 248,
+        '\\', 4,
+        ']', 249,
+        'u', 317,
+        '{', 245,
+        '}', 246,
+        '~', 203,
+      );
+      if (('\t' <= lookahead && lookahead <= '\r') ||
+          lookahead == ' ') SKIP(48);
       if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
     case 49:
-      if (lookahead == '!') ADVANCE(201);
-      if (lookahead == '"') ADVANCE(301);
-      if (lookahead == '#') ADVANCE(79);
-      if (sym_identifier_character_set_1(lookahead)) ADVANCE(325);
-      if (lookahead == '&') ADVANCE(226);
-      if (lookahead == '\'') ADVANCE(292);
-      if (lookahead == '(') ADVANCE(200);
-      if (lookahead == '*') ADVANCE(214);
-      if (lookahead == '+') ADVANCE(211);
-      if (lookahead == '-') ADVANCE(206);
-      if (lookahead == '.') ADVANCE(98);
-      if (lookahead == '/') ADVANCE(62);
-      if (lookahead == '0') ADVANCE(274);
-      if (lookahead == ';') ADVANCE(241);
-      if (lookahead == 'L') ADVANCE(313);
-      if (lookahead == 'U') ADVANCE(315);
-      if (lookahead == '[') ADVANCE(75);
-      if (lookahead == '\\') ADVANCE(8);
-      if (lookahead == 'u') ADVANCE(317);
-      if (lookahead == '{') ADVANCE(245);
-      if (lookahead == '~') ADVANCE(203);
-      if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(49)
+      ADVANCE_MAP(
+        '!', 201,
+        '"', 301,
+        '#', 81,
+        '&', 226,
+        '\'', 292,
+        '(', 200,
+        '*', 214,
+        '+', 211,
+        '-', 206,
+        '.', 100,
+        '/', 63,
+        '0', 274,
+        ':', 336,
+        ';', 241,
+        'L', 313,
+        'U', 315,
+        '[', 77,
+        '\\', 8,
+        'u', 317,
+        '{', 245,
+        '~', 203,
+        '\t', 49,
+        ' ', 49,
+      );
+      if (('\n' <= lookahead && lookahead <= '\r')) SKIP(50);
       if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
     case 50:
-      if (lookahead == '!') ADVANCE(201);
-      if (sym_identifier_character_set_1(lookahead)) ADVANCE(325);
-      if (lookahead == '\'') ADVANCE(292);
-      if (lookahead == '(') ADVANCE(200);
-      if (lookahead == ')') ADVANCE(131);
-      if (lookahead == '+') ADVANCE(213);
-      if (lookahead == '-') ADVANCE(208);
-      if (lookahead == '.') ADVANCE(98);
-      if (lookahead == '/') ADVANCE(62);
-      if (lookahead == '0') ADVANCE(274);
-      if (lookahead == 'L') ADVANCE(322);
-      if (lookahead == 'U') ADVANCE(323);
-      if (lookahead == '\\') ADVANCE(20);
-      if (lookahead == 'u') ADVANCE(321);
-      if (lookahead == '~') ADVANCE(203);
+      ADVANCE_MAP(
+        '!', 201,
+        '"', 301,
+        '#', 81,
+        '&', 226,
+        '\'', 292,
+        '(', 200,
+        '*', 214,
+        '+', 211,
+        '-', 206,
+        '.', 100,
+        '/', 63,
+        '0', 274,
+        ';', 241,
+        'L', 313,
+        'U', 315,
+        '[', 77,
+        '\\', 8,
+        'u', 317,
+        '{', 245,
+        '~', 203,
+      );
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(50)
+          lookahead == ' ') SKIP(50);
       if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
     case 51:
-      if (lookahead == '!') ADVANCE(70);
-      if (lookahead == '"') ADVANCE(301);
-      if (lookahead == '#') ADVANCE(85);
-      if (sym_identifier_character_set_1(lookahead)) ADVANCE(325);
-      if (lookahead == '%') ADVANCE(219);
-      if (lookahead == '&') ADVANCE(228);
-      if (lookahead == '(') ADVANCE(200);
-      if (lookahead == ')') ADVANCE(131);
-      if (lookahead == '*') ADVANCE(215);
-      if (lookahead == '+') ADVANCE(212);
-      if (lookahead == ',') ADVANCE(130);
-      if (lookahead == '-') ADVANCE(207);
-      if (lookahead == '.') ADVANCE(267);
-      if (lookahead == '/') ADVANCE(217);
-      if (lookahead == ':') ADVANCE(252);
-      if (lookahead == ';') ADVANCE(241);
-      if (lookahead == '<') ADVANCE(235);
-      if (lookahead == '=') ADVANCE(251);
-      if (lookahead == '>') ADVANCE(231);
-      if (lookahead == '?') ADVANCE(253);
-      if (lookahead == 'L') ADVANCE(314);
-      if (lookahead == 'U') ADVANCE(316);
-      if (lookahead == '[') ADVANCE(248);
-      if (lookahead == '\\') ADVANCE(16);
-      if (lookahead == ']') ADVANCE(249);
-      if (lookahead == '^') ADVANCE(225);
-      if (lookahead == 'u') ADVANCE(318);
-      if (lookahead == '{') ADVANCE(245);
-      if (lookahead == '|') ADVANCE(222);
-      if (lookahead == '}') ADVANCE(246);
+      ADVANCE_MAP(
+        '!', 201,
+        '\'', 292,
+        '(', 200,
+        ')', 131,
+        '+', 213,
+        '-', 208,
+        '.', 100,
+        '/', 63,
+        '0', 274,
+        'L', 321,
+        'U', 322,
+        '\\', 20,
+        'u', 323,
+        '~', 203,
+      );
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(51)
+          lookahead == ' ') SKIP(51);
+      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
     case 52:
-      if (lookahead == '!') ADVANCE(70);
-      if (lookahead == '#') ADVANCE(85);
-      if (sym_identifier_character_set_2(lookahead)) ADVANCE(325);
-      if (lookahead == '%') ADVANCE(219);
-      if (lookahead == '&') ADVANCE(228);
-      if (lookahead == '(') ADVANCE(200);
-      if (lookahead == ')') ADVANCE(131);
-      if (lookahead == '*') ADVANCE(215);
-      if (lookahead == '+') ADVANCE(212);
-      if (lookahead == ',') ADVANCE(130);
-      if (lookahead == '-') ADVANCE(207);
-      if (lookahead == '.') ADVANCE(267);
-      if (lookahead == '/') ADVANCE(217);
-      if (lookahead == ':') ADVANCE(252);
-      if (lookahead == ';') ADVANCE(241);
-      if (lookahead == '<') ADVANCE(235);
-      if (lookahead == '=') ADVANCE(251);
-      if (lookahead == '>') ADVANCE(231);
-      if (lookahead == '?') ADVANCE(253);
-      if (lookahead == '[') ADVANCE(248);
-      if (lookahead == '\\') ADVANCE(43);
-      if (lookahead == ']') ADVANCE(249);
-      if (lookahead == '^') ADVANCE(225);
-      if (lookahead == '{') ADVANCE(245);
-      if (lookahead == '|') ADVANCE(222);
-      if (lookahead == '}') ADVANCE(246);
+      ADVANCE_MAP(
+        '!', 72,
+        '"', 301,
+        '#', 87,
+        '%', 219,
+        '&', 228,
+        '(', 200,
+        ')', 131,
+        '*', 215,
+        '+', 212,
+        ',', 130,
+        '-', 207,
+        '.', 267,
+        '/', 217,
+        ':', 252,
+        ';', 241,
+        '<', 235,
+        '=', 251,
+        '>', 231,
+        '?', 253,
+        'L', 314,
+        'U', 316,
+        '[', 248,
+        '\\', 16,
+        ']', 249,
+        '^', 225,
+        'u', 318,
+        '{', 245,
+        '|', 222,
+        '}', 246,
+      );
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(52)
+          lookahead == ' ') SKIP(52);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
     case 53:
-      if (lookahead == '!') ADVANCE(70);
-      if (lookahead == '#') ADVANCE(85);
-      if (sym_identifier_character_set_2(lookahead)) ADVANCE(325);
-      if (lookahead == '%') ADVANCE(219);
-      if (lookahead == '&') ADVANCE(228);
-      if (lookahead == '(') ADVANCE(200);
-      if (lookahead == ')') ADVANCE(131);
-      if (lookahead == '*') ADVANCE(215);
-      if (lookahead == '+') ADVANCE(212);
-      if (lookahead == ',') ADVANCE(130);
-      if (lookahead == '-') ADVANCE(207);
-      if (lookahead == '.') ADVANCE(266);
-      if (lookahead == '/') ADVANCE(217);
-      if (lookahead == ':') ADVANCE(252);
-      if (lookahead == ';') ADVANCE(241);
-      if (lookahead == '<') ADVANCE(235);
-      if (lookahead == '=') ADVANCE(251);
-      if (lookahead == '>') ADVANCE(231);
-      if (lookahead == '?') ADVANCE(253);
-      if (lookahead == '[') ADVANCE(247);
-      if (lookahead == '\\') ADVANCE(18);
-      if (lookahead == ']') ADVANCE(76);
-      if (lookahead == '^') ADVANCE(225);
-      if (lookahead == '|') ADVANCE(222);
-      if (lookahead == '}') ADVANCE(246);
+      ADVANCE_MAP(
+        '!', 72,
+        '#', 87,
+        '%', 219,
+        '&', 228,
+        '(', 200,
+        ')', 131,
+        '*', 215,
+        '+', 212,
+        ',', 130,
+        '-', 207,
+        '.', 267,
+        '/', 217,
+        ':', 252,
+        ';', 241,
+        '<', 235,
+        '=', 251,
+        '>', 231,
+        '?', 253,
+        '[', 248,
+        '\\', 43,
+        ']', 249,
+        '^', 225,
+        '{', 245,
+        '|', 222,
+        '}', 246,
+      );
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(53)
+          lookahead == ' ') SKIP(53);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
     case 54:
-      if (lookahead == '!') ADVANCE(70);
-      if (lookahead == '#') ADVANCE(78);
-      if (sym_identifier_character_set_2(lookahead)) ADVANCE(325);
-      if (lookahead == '%') ADVANCE(219);
-      if (lookahead == '&') ADVANCE(228);
-      if (lookahead == '(') ADVANCE(200);
-      if (lookahead == ')') ADVANCE(131);
-      if (lookahead == '*') ADVANCE(215);
-      if (lookahead == '+') ADVANCE(212);
-      if (lookahead == ',') ADVANCE(130);
-      if (lookahead == '-') ADVANCE(207);
-      if (lookahead == '.') ADVANCE(267);
-      if (lookahead == '/') ADVANCE(217);
-      if (lookahead == ':') ADVANCE(252);
-      if (lookahead == ';') ADVANCE(241);
-      if (lookahead == '<') ADVANCE(235);
-      if (lookahead == '=') ADVANCE(251);
-      if (lookahead == '>') ADVANCE(231);
-      if (lookahead == '?') ADVANCE(253);
-      if (lookahead == '[') ADVANCE(248);
-      if (lookahead == '\\') ADVANCE(10);
-      if (lookahead == ']') ADVANCE(249);
-      if (lookahead == '^') ADVANCE(225);
-      if (lookahead == '{') ADVANCE(245);
-      if (lookahead == '|') ADVANCE(222);
-      if (lookahead == '}') ADVANCE(246);
+      ADVANCE_MAP(
+        '!', 72,
+        '#', 87,
+        '%', 219,
+        '&', 228,
+        '(', 200,
+        ')', 131,
+        '*', 215,
+        '+', 212,
+        ',', 130,
+        '-', 207,
+        '.', 266,
+        '/', 217,
+        ':', 252,
+        ';', 241,
+        '<', 235,
+        '=', 251,
+        '>', 231,
+        '?', 253,
+        '[', 247,
+        '\\', 18,
+        ']', 78,
+        '^', 225,
+        '|', 222,
+        '}', 246,
+      );
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(54)
+          lookahead == ' ') SKIP(54);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
     case 55:
-      if (lookahead == '!') ADVANCE(70);
-      if (lookahead == '#') ADVANCE(80);
-      if (sym_identifier_character_set_2(lookahead)) ADVANCE(325);
-      if (lookahead == '%') ADVANCE(218);
-      if (lookahead == '&') ADVANCE(227);
-      if (lookahead == '(') ADVANCE(200);
-      if (lookahead == ')') ADVANCE(131);
-      if (lookahead == '*') ADVANCE(214);
-      if (lookahead == '+') ADVANCE(209);
-      if (lookahead == ',') ADVANCE(130);
-      if (lookahead == '-') ADVANCE(204);
-      if (lookahead == '/') ADVANCE(216);
-      if (lookahead == ';') ADVANCE(241);
-      if (lookahead == '<') ADVANCE(236);
-      if (lookahead == '=') ADVANCE(251);
-      if (lookahead == '>') ADVANCE(232);
-      if (lookahead == '[') ADVANCE(248);
-      if (lookahead == '\\') ADVANCE(12);
-      if (lookahead == '^') ADVANCE(224);
-      if (lookahead == '{') ADVANCE(245);
-      if (lookahead == '|') ADVANCE(223);
+      ADVANCE_MAP(
+        '!', 72,
+        '#', 80,
+        '%', 219,
+        '&', 228,
+        '(', 200,
+        ')', 131,
+        '*', 215,
+        '+', 212,
+        ',', 130,
+        '-', 207,
+        '.', 267,
+        '/', 217,
+        ':', 252,
+        ';', 241,
+        '<', 235,
+        '=', 251,
+        '>', 231,
+        '?', 253,
+        '[', 248,
+        '\\', 10,
+        ']', 249,
+        '^', 225,
+        '{', 245,
+        '|', 222,
+        '}', 246,
+      );
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(55)
+          lookahead == ' ') SKIP(55);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
     case 56:
-      if (lookahead == '"') ADVANCE(301);
-      if (lookahead == '/') ADVANCE(62);
-      if (lookahead == '\\') ADVANCE(29);
+      ADVANCE_MAP(
+        '!', 72,
+        '#', 82,
+        '%', 218,
+        '&', 227,
+        '(', 200,
+        ')', 131,
+        '*', 214,
+        '+', 209,
+        ',', 130,
+        '-', 204,
+        '/', 216,
+        ';', 241,
+        '<', 236,
+        '=', 251,
+        '>', 232,
+        '[', 248,
+        '\\', 12,
+        '^', 224,
+        '{', 245,
+        '|', 223,
+      );
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(56)
+          lookahead == ' ') SKIP(56);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
     case 57:
       if (lookahead == '"') ADVANCE(301);
-      if (sym_identifier_character_set_1(lookahead)) ADVANCE(325);
-      if (lookahead == '/') ADVANCE(62);
-      if (lookahead == '<') ADVANCE(72);
+      if (lookahead == '/') ADVANCE(63);
+      if (lookahead == '<') ADVANCE(74);
       if (lookahead == 'L') ADVANCE(314);
       if (lookahead == 'U') ADVANCE(316);
       if (lookahead == '\\') ADVANCE(27);
       if (lookahead == 'u') ADVANCE(318);
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(57)
+          lookahead == ' ') SKIP(57);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
     case 58:
-      if (lookahead == '#') ADVANCE(95);
-      if (sym_identifier_character_set_2(lookahead)) ADVANCE(325);
-      if (lookahead == '/') ADVANCE(62);
+      if (lookahead == '"') ADVANCE(301);
+      if (lookahead == '/') ADVANCE(63);
+      if (lookahead == '\\') ADVANCE(29);
+      if (('\t' <= lookahead && lookahead <= '\r') ||
+          lookahead == ' ') SKIP(58);
+      END_STATE();
+    case 59:
+      if (lookahead == '#') ADVANCE(97);
+      if (lookahead == '/') ADVANCE(63);
       if (lookahead == '\\') ADVANCE(25);
       if (lookahead == '}') ADVANCE(246);
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(58)
+          lookahead == ' ') SKIP(59);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
-    case 59:
-      if (lookahead == '#') ADVANCE(82);
-      if (sym_identifier_character_set_2(lookahead)) ADVANCE(325);
-      if (lookahead == '/') ADVANCE(62);
-      if (lookahead == '[') ADVANCE(75);
+    case 60:
+      if (lookahead == '#') ADVANCE(84);
+      if (lookahead == '/') ADVANCE(63);
+      if (lookahead == '[') ADVANCE(77);
       if (lookahead == '\\') ADVANCE(14);
       if (lookahead == '}') ADVANCE(246);
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(59)
+          lookahead == ' ') SKIP(60);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
-    case 60:
+    case 61:
       if (lookahead == '\'') ADVANCE(292);
-      if (lookahead == '/') ADVANCE(62);
+      if (lookahead == '/') ADVANCE(63);
       if (lookahead == '\\') ADVANCE(29);
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(60)
+          lookahead == ' ') SKIP(61);
       END_STATE();
-    case 61:
+    case 62:
       if (lookahead == '(') ADVANCE(200);
-      if (lookahead == '/') ADVANCE(62);
-      if (lookahead == '\\') SKIP(39)
+      if (lookahead == '/') ADVANCE(63);
+      if (lookahead == '\\') SKIP(39);
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(61)
-      END_STATE();
-    case 62:
-      if (lookahead == '*') ADVANCE(64);
-      if (lookahead == '/') ADVANCE(331);
+          lookahead == ' ') SKIP(62);
       END_STATE();
     case 63:
-      if (lookahead == '*') ADVANCE(63);
-      if (lookahead == '/') ADVANCE(327);
-      if (lookahead != 0) ADVANCE(64);
+      if (lookahead == '*') ADVANCE(65);
+      if (lookahead == '/') ADVANCE(334);
       END_STATE();
     case 64:
-      if (lookahead == '*') ADVANCE(63);
-      if (lookahead != 0) ADVANCE(64);
+      if (lookahead == '*') ADVANCE(64);
+      if (lookahead == '/') ADVANCE(327);
+      if (lookahead != 0) ADVANCE(65);
       END_STATE();
     case 65:
-      if (lookahead == '*') ADVANCE(63);
-      if (lookahead != 0) ADVANCE(147);
+      if (lookahead == '*') ADVANCE(64);
+      if (lookahead != 0) ADVANCE(65);
       END_STATE();
     case 66:
-      if (lookahead == '.') ADVANCE(98);
+      if (lookahead == '*') ADVANCE(64);
+      if (lookahead != 0) ADVANCE(147);
+      END_STATE();
+    case 67:
+      if (lookahead == '.') ADVANCE(100);
       if (lookahead == '0') ADVANCE(272);
       if (('1' <= lookahead && lookahead <= '9')) ADVANCE(273);
       if (('A' <= lookahead && lookahead <= 'F') ||
           ('a' <= lookahead && lookahead <= 'f')) ADVANCE(282);
       END_STATE();
-    case 67:
+    case 68:
       if (lookahead == '.') ADVANCE(129);
       END_STATE();
-    case 68:
-      if (lookahead == '/') ADVANCE(153);
+    case 69:
+      if (lookahead == '/') ADVANCE(157);
       if (lookahead == '\\') ADVANCE(149);
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(68)
-      if (lookahead != 0) ADVANCE(162);
+          lookahead == ' ') SKIP(69);
+      if (lookahead != 0) ADVANCE(167);
       END_STATE();
-    case 69:
+    case 70:
+      if (lookahead == '/') ADVANCE(157);
+      if (lookahead == '\\') ADVANCE(151);
+      if (('\t' <= lookahead && lookahead <= '\r') ||
+          lookahead == ' ') SKIP(70);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(326);
+      if (lookahead != 0) ADVANCE(167);
+      END_STATE();
+    case 71:
       if (lookahead == ':') ADVANCE(242);
       END_STATE();
-    case 70:
+    case 72:
       if (lookahead == '=') ADVANCE(230);
       END_STATE();
-    case 71:
+    case 73:
       if (lookahead == '=') ADVANCE(229);
       END_STATE();
-    case 72:
+    case 74:
       if (lookahead == '>') ADVANCE(311);
-      if (lookahead == '\\') ADVANCE(73);
+      if (lookahead == '\\') ADVANCE(75);
       if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(72);
+          lookahead != '\n') ADVANCE(74);
       END_STATE();
-    case 73:
+    case 75:
       if (lookahead == '>') ADVANCE(312);
-      if (lookahead == '\\') ADVANCE(73);
+      if (lookahead == '\\') ADVANCE(75);
       if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(72);
+          lookahead != '\n') ADVANCE(74);
       END_STATE();
-    case 74:
-      if (lookahead == 'U') ADVANCE(117);
-      if (lookahead == 'u') ADVANCE(109);
+    case 76:
+      if (lookahead == 'U') ADVANCE(119);
+      if (lookahead == 'u') ADVANCE(111);
       END_STATE();
-    case 75:
+    case 77:
       if (lookahead == '[') ADVANCE(243);
       END_STATE();
-    case 76:
+    case 78:
       if (lookahead == ']') ADVANCE(244);
       END_STATE();
-    case 77:
+    case 79:
       if (lookahead == 'd') ADVANCE(174);
       if (lookahead == 'e') ADVANCE(194);
       if (lookahead == 'i') ADVANCE(182);
       if (lookahead == '\t' ||
-          lookahead == ' ') ADVANCE(77);
+          lookahead == ' ') ADVANCE(79);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           ('a' <= lookahead && lookahead <= 'z')) ADVANCE(199);
       END_STATE();
-    case 78:
+    case 80:
       if (lookahead == 'd') ADVANCE(174);
       if (lookahead == 'e') ADVANCE(194);
       if (lookahead == 'i') ADVANCE(183);
       if (lookahead == '\t' ||
-          lookahead == ' ') ADVANCE(78);
+          lookahead == ' ') ADVANCE(80);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           ('a' <= lookahead && lookahead <= 'z')) ADVANCE(199);
       END_STATE();
-    case 79:
+    case 81:
       if (lookahead == 'd') ADVANCE(174);
       if (lookahead == 'e') ADVANCE(196);
       if (lookahead == 'i') ADVANCE(182);
       if (lookahead == '\t' ||
-          lookahead == ' ') ADVANCE(79);
+          lookahead == ' ') ADVANCE(81);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           ('a' <= lookahead && lookahead <= 'z')) ADVANCE(199);
       END_STATE();
-    case 80:
+    case 82:
       if (lookahead == 'd') ADVANCE(174);
       if (lookahead == 'e') ADVANCE(196);
       if (lookahead == 'i') ADVANCE(183);
       if (lookahead == '\t' ||
-          lookahead == ' ') ADVANCE(80);
+          lookahead == ' ') ADVANCE(82);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           ('a' <= lookahead && lookahead <= 'z')) ADVANCE(199);
       END_STATE();
-    case 81:
+    case 83:
       if (lookahead == 'd') ADVANCE(174);
       if (lookahead == 'i') ADVANCE(182);
       if (lookahead == '\t' ||
-          lookahead == ' ') ADVANCE(81);
+          lookahead == ' ') ADVANCE(83);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           ('a' <= lookahead && lookahead <= 'z')) ADVANCE(199);
       END_STATE();
-    case 82:
+    case 84:
       if (lookahead == 'd') ADVANCE(174);
       if (lookahead == 'i') ADVANCE(183);
       if (lookahead == '\t' ||
-          lookahead == ' ') ADVANCE(82);
+          lookahead == ' ') ADVANCE(84);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           ('a' <= lookahead && lookahead <= 'z')) ADVANCE(199);
       END_STATE();
-    case 83:
-      if (lookahead == 'd') ADVANCE(94);
-      END_STATE();
-    case 84:
-      if (lookahead == 'd') ADVANCE(88);
-      END_STATE();
     case 85:
-      if (lookahead == 'e') ADVANCE(96);
-      if (lookahead == '\t' ||
-          lookahead == ' ') ADVANCE(85);
+      if (lookahead == 'd') ADVANCE(96);
       END_STATE();
     case 86:
-      if (lookahead == 'e') ADVANCE(138);
+      if (lookahead == 'd') ADVANCE(90);
       END_STATE();
     case 87:
-      if (lookahead == 'e') ADVANCE(91);
+      if (lookahead == 'e') ADVANCE(98);
+      if (lookahead == '\t' ||
+          lookahead == ' ') ADVANCE(87);
       END_STATE();
     case 88:
-      if (lookahead == 'e') ADVANCE(92);
+      if (lookahead == 'e') ADVANCE(138);
       END_STATE();
     case 89:
-      if (lookahead == 'f') ADVANCE(140);
+      if (lookahead == 'e') ADVANCE(93);
       END_STATE();
     case 90:
-      if (lookahead == 'f') ADVANCE(134);
+      if (lookahead == 'e') ADVANCE(94);
       END_STATE();
     case 91:
-      if (lookahead == 'f') ADVANCE(142);
+      if (lookahead == 'f') ADVANCE(140);
       END_STATE();
     case 92:
-      if (lookahead == 'f') ADVANCE(144);
+      if (lookahead == 'f') ADVANCE(134);
       END_STATE();
     case 93:
-      if (lookahead == 'i') ADVANCE(89);
-      if (lookahead == 's') ADVANCE(86);
+      if (lookahead == 'f') ADVANCE(142);
       END_STATE();
     case 94:
-      if (lookahead == 'i') ADVANCE(90);
+      if (lookahead == 'f') ADVANCE(144);
       END_STATE();
     case 95:
+      if (lookahead == 'i') ADVANCE(91);
+      if (lookahead == 's') ADVANCE(88);
+      END_STATE();
+    case 96:
+      if (lookahead == 'i') ADVANCE(92);
+      END_STATE();
+    case 97:
       if (lookahead == 'i') ADVANCE(183);
       if (lookahead == '\t' ||
-          lookahead == ' ') ADVANCE(95);
+          lookahead == ' ') ADVANCE(97);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           ('a' <= lookahead && lookahead <= 'z')) ADVANCE(199);
       END_STATE();
-    case 96:
-      if (lookahead == 'l') ADVANCE(93);
-      if (lookahead == 'n') ADVANCE(83);
+    case 98:
+      if (lookahead == 'l') ADVANCE(95);
+      if (lookahead == 'n') ADVANCE(85);
       END_STATE();
-    case 97:
+    case 99:
       if (('0' <= lookahead && lookahead <= '9')) ADVANCE(276);
       END_STATE();
-    case 98:
+    case 100:
       if (('0' <= lookahead && lookahead <= '9')) ADVANCE(271);
       END_STATE();
-    case 99:
+    case 101:
       if (('0' <= lookahead && lookahead <= '9')) ADVANCE(273);
       if (('A' <= lookahead && lookahead <= 'F') ||
           ('a' <= lookahead && lookahead <= 'f')) ADVANCE(282);
       END_STATE();
-    case 100:
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(325);
-      END_STATE();
-    case 101:
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(279);
-      END_STATE();
     case 102:
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(282);
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(325);
       END_STATE();
     case 103:
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(277);
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(279);
       END_STATE();
     case 104:
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(307);
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(282);
       END_STATE();
     case 105:
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(100);
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(277);
       END_STATE();
     case 106:
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(104);
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(307);
       END_STATE();
     case 107:
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(105);
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(102);
       END_STATE();
     case 108:
       if (('0' <= lookahead && lookahead <= '9') ||
@@ -10650,95 +7242,94 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           ('a' <= lookahead && lookahead <= 'f')) ADVANCE(116);
       END_STATE();
     case 119:
-      if (sym_identifier_character_set_2(lookahead)) ADVANCE(326);
-      if (lookahead == '/') ADVANCE(153);
-      if (lookahead == '\\') ADVANCE(151);
-      if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(119)
-      if (lookahead != 0) ADVANCE(162);
+      if (('0' <= lookahead && lookahead <= '9') ||
+          ('A' <= lookahead && lookahead <= 'F') ||
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(117);
       END_STATE();
     case 120:
-      if (lookahead != 0 &&
-          lookahead != '\r' &&
-          lookahead != '\\') ADVANCE(331);
-      if (lookahead == '\r') ADVANCE(335);
-      if (lookahead == '\\') ADVANCE(333);
+      if (('0' <= lookahead && lookahead <= '9') ||
+          ('A' <= lookahead && lookahead <= 'F') ||
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(118);
       END_STATE();
     case 121:
       if (lookahead != 0 &&
-          lookahead != '*') ADVANCE(162);
+          lookahead != '*') ADVANCE(167);
       END_STATE();
     case 122:
       if (eof) ADVANCE(124);
-      if (lookahead == '!') ADVANCE(202);
-      if (lookahead == '"') ADVANCE(301);
-      if (lookahead == '#') ADVANCE(77);
-      if (sym_identifier_character_set_1(lookahead)) ADVANCE(325);
-      if (lookahead == '%') ADVANCE(219);
-      if (lookahead == '&') ADVANCE(228);
-      if (lookahead == '\'') ADVANCE(292);
-      if (lookahead == '(') ADVANCE(200);
-      if (lookahead == ')') ADVANCE(131);
-      if (lookahead == '*') ADVANCE(215);
-      if (lookahead == '+') ADVANCE(210);
-      if (lookahead == ',') ADVANCE(130);
-      if (lookahead == '-') ADVANCE(205);
-      if (lookahead == '.') ADVANCE(268);
-      if (lookahead == '/') ADVANCE(217);
-      if (lookahead == '0') ADVANCE(274);
-      if (lookahead == ':') ADVANCE(252);
-      if (lookahead == ';') ADVANCE(241);
-      if (lookahead == '<') ADVANCE(235);
-      if (lookahead == '=') ADVANCE(251);
-      if (lookahead == '>') ADVANCE(231);
-      if (lookahead == '?') ADVANCE(253);
-      if (lookahead == 'L') ADVANCE(313);
-      if (lookahead == 'U') ADVANCE(315);
-      if (lookahead == '[') ADVANCE(248);
-      if (lookahead == '\\') ADVANCE(2);
-      if (lookahead == ']') ADVANCE(249);
-      if (lookahead == '^') ADVANCE(225);
-      if (lookahead == 'u') ADVANCE(317);
-      if (lookahead == '{') ADVANCE(245);
-      if (lookahead == '|') ADVANCE(222);
-      if (lookahead == '}') ADVANCE(246);
-      if (lookahead == '~') ADVANCE(203);
+      ADVANCE_MAP(
+        '!', 202,
+        '"', 301,
+        '#', 79,
+        '%', 219,
+        '&', 228,
+        '\'', 292,
+        '(', 200,
+        ')', 131,
+        '*', 215,
+        '+', 210,
+        ',', 130,
+        '-', 205,
+        '.', 268,
+        '/', 217,
+        '0', 274,
+        ':', 252,
+        ';', 241,
+        '<', 235,
+        '=', 251,
+        '>', 231,
+        '?', 253,
+        'L', 313,
+        'U', 315,
+        '[', 248,
+        '\\', 2,
+        ']', 249,
+        '^', 225,
+        'u', 317,
+        '{', 245,
+        '|', 222,
+        '}', 246,
+        '~', 203,
+      );
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(122)
+          lookahead == ' ') SKIP(122);
       if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
     case 123:
       if (eof) ADVANCE(124);
-      if (lookahead == '!') ADVANCE(201);
-      if (lookahead == '"') ADVANCE(301);
-      if (lookahead == '#') ADVANCE(81);
-      if (sym_identifier_character_set_1(lookahead)) ADVANCE(325);
-      if (lookahead == '&') ADVANCE(226);
-      if (lookahead == '\'') ADVANCE(292);
-      if (lookahead == '(') ADVANCE(200);
-      if (lookahead == ')') ADVANCE(131);
-      if (lookahead == '*') ADVANCE(214);
-      if (lookahead == '+') ADVANCE(211);
-      if (lookahead == ',') ADVANCE(130);
-      if (lookahead == '-') ADVANCE(206);
-      if (lookahead == '.') ADVANCE(269);
-      if (lookahead == '/') ADVANCE(62);
-      if (lookahead == '0') ADVANCE(274);
-      if (lookahead == ':') ADVANCE(252);
-      if (lookahead == ';') ADVANCE(241);
-      if (lookahead == '=') ADVANCE(250);
-      if (lookahead == 'L') ADVANCE(313);
-      if (lookahead == 'U') ADVANCE(315);
-      if (lookahead == '[') ADVANCE(248);
-      if (lookahead == '\\') ADVANCE(4);
-      if (lookahead == ']') ADVANCE(249);
-      if (lookahead == 'u') ADVANCE(317);
-      if (lookahead == '{') ADVANCE(245);
-      if (lookahead == '}') ADVANCE(246);
-      if (lookahead == '~') ADVANCE(203);
+      ADVANCE_MAP(
+        '!', 201,
+        '"', 301,
+        '#', 83,
+        '&', 226,
+        '\'', 292,
+        '(', 200,
+        ')', 131,
+        '*', 214,
+        '+', 211,
+        ',', 130,
+        '-', 206,
+        '.', 269,
+        '/', 63,
+        '0', 274,
+        ':', 252,
+        ';', 241,
+        '=', 250,
+        'L', 313,
+        'U', 315,
+        '[', 248,
+        '\\', 4,
+        ']', 249,
+        'u', 317,
+        '{', 245,
+        '}', 246,
+        '~', 203,
+      );
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(123)
+          lookahead == ' ') SKIP(123);
       if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
+      if (set_contains(sym_identifier_character_set_1, 658, lookahead)) ADVANCE(325);
       END_STATE();
     case 124:
       ACCEPT_TOKEN(ts_builtin_sym_end);
@@ -10821,8 +7412,8 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 140:
       ACCEPT_TOKEN(aux_sym_preproc_elif_token1);
-      if (lookahead == 'd') ADVANCE(87);
-      if (lookahead == 'n') ADVANCE(84);
+      if (lookahead == 'd') ADVANCE(89);
+      if (lookahead == 'n') ADVANCE(86);
       END_STATE();
     case 141:
       ACCEPT_TOKEN(aux_sym_preproc_elif_token1);
@@ -10855,218 +7446,198 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 146:
       ACCEPT_TOKEN(sym_preproc_arg);
-      if (lookahead == '\n') ADVANCE(64);
+      if (lookahead == '\n') ADVANCE(65);
       if (lookahead == '*') ADVANCE(146);
       if (lookahead == '/') ADVANCE(327);
-      if (lookahead == '\\') ADVANCE(164);
+      if (lookahead == '\\') ADVANCE(155);
       if (lookahead != 0) ADVANCE(147);
       END_STATE();
     case 147:
       ACCEPT_TOKEN(sym_preproc_arg);
-      if (lookahead == '\n') ADVANCE(64);
+      if (lookahead == '\n') ADVANCE(65);
       if (lookahead == '*') ADVANCE(146);
-      if (lookahead == '/') ADVANCE(65);
-      if (lookahead == '\\') ADVANCE(164);
+      if (lookahead == '/') ADVANCE(66);
+      if (lookahead == '\\') ADVANCE(155);
       if (lookahead != 0) ADVANCE(147);
       END_STATE();
     case 148:
       ACCEPT_TOKEN(sym_preproc_arg);
-      if (lookahead == '\n') ADVANCE(331);
+      if (lookahead == '\n') ADVANCE(334);
       if (lookahead == '\r') ADVANCE(328);
-      if (lookahead == '/') ADVANCE(329);
-      if (lookahead == '\\') ADVANCE(332);
-      if (lookahead != 0) ADVANCE(330);
+      if (lookahead == '/') ADVANCE(331);
+      if (lookahead == '\\') ADVANCE(330);
+      if (lookahead != 0) ADVANCE(332);
       END_STATE();
     case 149:
       ACCEPT_TOKEN(sym_preproc_arg);
-      if (lookahead == '\n') SKIP(68)
+      if (lookahead == '\n') SKIP(69);
       if (lookahead == '\r') ADVANCE(150);
       if (lookahead == '/') ADVANCE(121);
-      if (lookahead == '\\') ADVANCE(165);
-      if (lookahead != 0) ADVANCE(162);
+      if (lookahead == '\\') ADVANCE(154);
+      if (lookahead != 0) ADVANCE(167);
       END_STATE();
     case 150:
       ACCEPT_TOKEN(sym_preproc_arg);
-      if (lookahead == '\n') SKIP(68)
+      if (lookahead == '\n') SKIP(69);
       if (lookahead == '/') ADVANCE(121);
-      if (lookahead == '\\') ADVANCE(165);
-      if (lookahead != 0) ADVANCE(162);
+      if (lookahead == '\\') ADVANCE(154);
+      if (lookahead != 0) ADVANCE(167);
       END_STATE();
     case 151:
       ACCEPT_TOKEN(sym_preproc_arg);
-      if (lookahead == '\n') SKIP(119)
+      if (lookahead == '\n') SKIP(70);
       if (lookahead == '\r') ADVANCE(152);
       if (lookahead == '/') ADVANCE(121);
-      if (lookahead == 'U') ADVANCE(161);
-      if (lookahead == '\\') ADVANCE(165);
-      if (lookahead == 'u') ADVANCE(157);
-      if (lookahead != 0) ADVANCE(162);
+      if (lookahead == 'U') ADVANCE(166);
+      if (lookahead == '\\') ADVANCE(154);
+      if (lookahead == 'u') ADVANCE(162);
+      if (lookahead != 0) ADVANCE(167);
       END_STATE();
     case 152:
       ACCEPT_TOKEN(sym_preproc_arg);
-      if (lookahead == '\n') SKIP(119)
+      if (lookahead == '\n') SKIP(70);
       if (lookahead == '/') ADVANCE(121);
-      if (lookahead == '\\') ADVANCE(165);
-      if (lookahead != 0) ADVANCE(162);
+      if (lookahead == '\\') ADVANCE(154);
+      if (lookahead != 0) ADVANCE(167);
       END_STATE();
     case 153:
       ACCEPT_TOKEN(sym_preproc_arg);
-      if (lookahead == '*') ADVANCE(147);
-      if (lookahead == '/') ADVANCE(329);
-      if (lookahead == '\\') ADVANCE(165);
-      if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(162);
+      if (lookahead == '\r') ADVANCE(168);
+      if (lookahead == '/') ADVANCE(121);
+      if (lookahead == 'U') ADVANCE(166);
+      if (lookahead == '\\') ADVANCE(154);
+      if (lookahead == 'u') ADVANCE(162);
+      if (lookahead != 0) ADVANCE(167);
       END_STATE();
     case 154:
       ACCEPT_TOKEN(sym_preproc_arg);
+      if (lookahead == '\r') ADVANCE(168);
       if (lookahead == '/') ADVANCE(121);
-      if (lookahead == '\\') ADVANCE(165);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(326);
-      if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(162);
+      if (lookahead == '\\') ADVANCE(154);
+      if (lookahead != 0) ADVANCE(167);
       END_STATE();
     case 155:
       ACCEPT_TOKEN(sym_preproc_arg);
-      if (lookahead == '/') ADVANCE(121);
-      if (lookahead == '\\') ADVANCE(165);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(154);
-      if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(162);
+      if (lookahead == '\r') ADVANCE(158);
+      if (lookahead == '*') ADVANCE(146);
+      if (lookahead == '/') ADVANCE(66);
+      if (lookahead == '\\') ADVANCE(155);
+      if (lookahead != 0) ADVANCE(147);
       END_STATE();
     case 156:
       ACCEPT_TOKEN(sym_preproc_arg);
-      if (lookahead == '/') ADVANCE(121);
-      if (lookahead == '\\') ADVANCE(165);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(155);
-      if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(162);
+      if (lookahead == '\r') ADVANCE(333);
+      if (lookahead == '/') ADVANCE(331);
+      if (lookahead == '\\') ADVANCE(330);
+      if (lookahead != 0) ADVANCE(332);
       END_STATE();
     case 157:
       ACCEPT_TOKEN(sym_preproc_arg);
-      if (lookahead == '/') ADVANCE(121);
-      if (lookahead == '\\') ADVANCE(165);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(156);
+      if (lookahead == '*') ADVANCE(147);
+      if (lookahead == '/') ADVANCE(331);
+      if (lookahead == '\\') ADVANCE(154);
       if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(162);
+          lookahead != '\n') ADVANCE(167);
       END_STATE();
     case 158:
       ACCEPT_TOKEN(sym_preproc_arg);
-      if (lookahead == '/') ADVANCE(121);
-      if (lookahead == '\\') ADVANCE(165);
-      if (('0' <= lookahead && lookahead <= '9') ||
-          ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(157);
-      if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(162);
+      if (lookahead == '*') ADVANCE(146);
+      if (lookahead == '/') ADVANCE(66);
+      if (lookahead == '\\') ADVANCE(155);
+      if (lookahead != 0) ADVANCE(147);
       END_STATE();
     case 159:
       ACCEPT_TOKEN(sym_preproc_arg);
       if (lookahead == '/') ADVANCE(121);
-      if (lookahead == '\\') ADVANCE(165);
+      if (lookahead == '\\') ADVANCE(154);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
-          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(158);
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(326);
       if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(162);
+          lookahead != '\n') ADVANCE(167);
       END_STATE();
     case 160:
       ACCEPT_TOKEN(sym_preproc_arg);
       if (lookahead == '/') ADVANCE(121);
-      if (lookahead == '\\') ADVANCE(165);
+      if (lookahead == '\\') ADVANCE(154);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
           ('a' <= lookahead && lookahead <= 'f')) ADVANCE(159);
       if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(162);
+          lookahead != '\n') ADVANCE(167);
       END_STATE();
     case 161:
       ACCEPT_TOKEN(sym_preproc_arg);
       if (lookahead == '/') ADVANCE(121);
-      if (lookahead == '\\') ADVANCE(165);
+      if (lookahead == '\\') ADVANCE(154);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'F') ||
           ('a' <= lookahead && lookahead <= 'f')) ADVANCE(160);
       if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(162);
+          lookahead != '\n') ADVANCE(167);
       END_STATE();
     case 162:
       ACCEPT_TOKEN(sym_preproc_arg);
       if (lookahead == '/') ADVANCE(121);
-      if (lookahead == '\\') ADVANCE(165);
+      if (lookahead == '\\') ADVANCE(154);
+      if (('0' <= lookahead && lookahead <= '9') ||
+          ('A' <= lookahead && lookahead <= 'F') ||
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(161);
       if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(162);
+          lookahead != '\n') ADVANCE(167);
       END_STATE();
     case 163:
       ACCEPT_TOKEN(sym_preproc_arg);
-      if (lookahead != 0 &&
-          lookahead != '\r' &&
-          lookahead != '/' &&
-          lookahead != 'U' &&
-          lookahead != '\\' &&
-          lookahead != 'u') ADVANCE(162);
-      if (lookahead == '\r') ADVANCE(168);
       if (lookahead == '/') ADVANCE(121);
-      if (lookahead == 'U') ADVANCE(161);
-      if (lookahead == '\\') ADVANCE(165);
-      if (lookahead == 'u') ADVANCE(157);
+      if (lookahead == '\\') ADVANCE(154);
+      if (('0' <= lookahead && lookahead <= '9') ||
+          ('A' <= lookahead && lookahead <= 'F') ||
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(162);
+      if (lookahead != 0 &&
+          lookahead != '\n') ADVANCE(167);
       END_STATE();
     case 164:
       ACCEPT_TOKEN(sym_preproc_arg);
+      if (lookahead == '/') ADVANCE(121);
+      if (lookahead == '\\') ADVANCE(154);
+      if (('0' <= lookahead && lookahead <= '9') ||
+          ('A' <= lookahead && lookahead <= 'F') ||
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(163);
       if (lookahead != 0 &&
-          lookahead != '\r' &&
-          lookahead != '*' &&
-          lookahead != '/' &&
-          lookahead != '\\') ADVANCE(147);
-      if (lookahead == '\r') ADVANCE(167);
-      if (lookahead == '*') ADVANCE(146);
-      if (lookahead == '/') ADVANCE(65);
-      if (lookahead == '\\') ADVANCE(164);
+          lookahead != '\n') ADVANCE(167);
       END_STATE();
     case 165:
       ACCEPT_TOKEN(sym_preproc_arg);
-      if (lookahead != 0 &&
-          lookahead != '\r' &&
-          lookahead != '/' &&
-          lookahead != '\\') ADVANCE(162);
-      if (lookahead == '\r') ADVANCE(168);
       if (lookahead == '/') ADVANCE(121);
-      if (lookahead == '\\') ADVANCE(165);
+      if (lookahead == '\\') ADVANCE(154);
+      if (('0' <= lookahead && lookahead <= '9') ||
+          ('A' <= lookahead && lookahead <= 'F') ||
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(164);
+      if (lookahead != 0 &&
+          lookahead != '\n') ADVANCE(167);
       END_STATE();
     case 166:
       ACCEPT_TOKEN(sym_preproc_arg);
+      if (lookahead == '/') ADVANCE(121);
+      if (lookahead == '\\') ADVANCE(154);
+      if (('0' <= lookahead && lookahead <= '9') ||
+          ('A' <= lookahead && lookahead <= 'F') ||
+          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(165);
       if (lookahead != 0 &&
-          lookahead != '\r' &&
-          lookahead != '/' &&
-          lookahead != '\\') ADVANCE(330);
-      if (lookahead == '\r') ADVANCE(334);
-      if (lookahead == '/') ADVANCE(329);
-      if (lookahead == '\\') ADVANCE(332);
+          lookahead != '\n') ADVANCE(167);
       END_STATE();
     case 167:
       ACCEPT_TOKEN(sym_preproc_arg);
+      if (lookahead == '/') ADVANCE(121);
+      if (lookahead == '\\') ADVANCE(154);
       if (lookahead != 0 &&
-          lookahead != '*' &&
-          lookahead != '/' &&
-          lookahead != '\\') ADVANCE(147);
-      if (lookahead == '*') ADVANCE(146);
-      if (lookahead == '/') ADVANCE(65);
-      if (lookahead == '\\') ADVANCE(164);
+          lookahead != '\n') ADVANCE(167);
       END_STATE();
     case 168:
       ACCEPT_TOKEN(sym_preproc_arg);
-      if (lookahead != 0 &&
-          lookahead != '/' &&
-          lookahead != '\\') ADVANCE(162);
       if (lookahead == '/') ADVANCE(121);
-      if (lookahead == '\\') ADVANCE(165);
+      if (lookahead == '\\') ADVANCE(154);
+      if (lookahead != 0) ADVANCE(167);
       END_STATE();
     case 169:
       ACCEPT_TOKEN(sym_preproc_directive);
@@ -11337,7 +7908,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
     case 205:
       ACCEPT_TOKEN(anon_sym_DASH);
       if (lookahead == '-') ADVANCE(264);
-      if (lookahead == '.') ADVANCE(98);
+      if (lookahead == '.') ADVANCE(100);
       if (lookahead == '0') ADVANCE(274);
       if (lookahead == '=') ADVANCE(258);
       if (lookahead == '>') ADVANCE(270);
@@ -11346,7 +7917,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
     case 206:
       ACCEPT_TOKEN(anon_sym_DASH);
       if (lookahead == '-') ADVANCE(264);
-      if (lookahead == '.') ADVANCE(98);
+      if (lookahead == '.') ADVANCE(100);
       if (lookahead == '0') ADVANCE(274);
       if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
       END_STATE();
@@ -11358,7 +7929,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 208:
       ACCEPT_TOKEN(anon_sym_DASH);
-      if (lookahead == '.') ADVANCE(98);
+      if (lookahead == '.') ADVANCE(100);
       if (lookahead == '0') ADVANCE(274);
       if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
       END_STATE();
@@ -11368,7 +7939,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
     case 210:
       ACCEPT_TOKEN(anon_sym_PLUS);
       if (lookahead == '+') ADVANCE(265);
-      if (lookahead == '.') ADVANCE(98);
+      if (lookahead == '.') ADVANCE(100);
       if (lookahead == '0') ADVANCE(274);
       if (lookahead == '=') ADVANCE(257);
       if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
@@ -11376,7 +7947,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
     case 211:
       ACCEPT_TOKEN(anon_sym_PLUS);
       if (lookahead == '+') ADVANCE(265);
-      if (lookahead == '.') ADVANCE(98);
+      if (lookahead == '.') ADVANCE(100);
       if (lookahead == '0') ADVANCE(274);
       if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
       END_STATE();
@@ -11387,7 +7958,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 213:
       ACCEPT_TOKEN(anon_sym_PLUS);
-      if (lookahead == '.') ADVANCE(98);
+      if (lookahead == '.') ADVANCE(100);
       if (lookahead == '0') ADVANCE(274);
       if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
       END_STATE();
@@ -11400,13 +7971,13 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 216:
       ACCEPT_TOKEN(anon_sym_SLASH);
-      if (lookahead == '*') ADVANCE(64);
-      if (lookahead == '/') ADVANCE(331);
+      if (lookahead == '*') ADVANCE(65);
+      if (lookahead == '/') ADVANCE(334);
       END_STATE();
     case 217:
       ACCEPT_TOKEN(anon_sym_SLASH);
-      if (lookahead == '*') ADVANCE(64);
-      if (lookahead == '/') ADVANCE(331);
+      if (lookahead == '*') ADVANCE(65);
+      if (lookahead == '/') ADVANCE(334);
       if (lookahead == '=') ADVANCE(255);
       END_STATE();
     case 218:
@@ -11578,11 +8149,11 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 267:
       ACCEPT_TOKEN(anon_sym_DOT);
-      if (lookahead == '.') ADVANCE(67);
+      if (lookahead == '.') ADVANCE(68);
       END_STATE();
     case 268:
       ACCEPT_TOKEN(anon_sym_DOT);
-      if (lookahead == '.') ADVANCE(67);
+      if (lookahead == '.') ADVANCE(68);
       if (('0' <= lookahead && lookahead <= '9')) ADVANCE(271);
       END_STATE();
     case 269:
@@ -11594,289 +8165,339 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 271:
       ACCEPT_TOKEN(sym_number_literal);
-      if (lookahead == '\'') ADVANCE(98);
+      if (lookahead == '\'') ADVANCE(100);
       if (lookahead == 'E' ||
           lookahead == 'P' ||
           lookahead == 'e' ||
           lookahead == 'p') ADVANCE(284);
       if (('0' <= lookahead && lookahead <= '9')) ADVANCE(271);
-      if (sym_number_literal_character_set_1(lookahead)) ADVANCE(287);
+      if (set_contains(sym_number_literal_character_set_13, 13, lookahead)) ADVANCE(287);
       END_STATE();
     case 272:
       ACCEPT_TOKEN(sym_number_literal);
-      if (lookahead == '\'') ADVANCE(99);
-      if (lookahead == '.') ADVANCE(285);
-      if (lookahead == 'B' ||
-          lookahead == 'b') ADVANCE(281);
-      if (lookahead == 'E' ||
-          lookahead == 'e') ADVANCE(280);
-      if (lookahead == 'P' ||
-          lookahead == 'p') ADVANCE(284);
-      if (lookahead == 'X' ||
-          lookahead == 'x') ADVANCE(102);
-      if (('A' <= lookahead && lookahead <= 'C') ||
-          ('a' <= lookahead && lookahead <= 'c')) ADVANCE(282);
-      if (('D' <= lookahead && lookahead <= 'F') ||
-          ('d' <= lookahead && lookahead <= 'f')) ADVANCE(282);
-      if (lookahead == 'L' ||
-          lookahead == 'U' ||
-          lookahead == 'W' ||
-          lookahead == 'l' ||
-          lookahead == 'u' ||
-          lookahead == 'w') ADVANCE(287);
+      ADVANCE_MAP(
+        '\'', 101,
+        '.', 285,
+        'B', 281,
+        'b', 281,
+        'E', 280,
+        'e', 280,
+        'P', 284,
+        'p', 284,
+        'X', 104,
+        'x', 104,
+        'A', 282,
+        'C', 282,
+        'a', 282,
+        'c', 282,
+        'D', 282,
+        'F', 282,
+        'd', 282,
+        'f', 282,
+        'L', 287,
+        'U', 287,
+        'W', 287,
+        'l', 287,
+        'u', 287,
+        'w', 287,
+      );
       if (('0' <= lookahead && lookahead <= '9')) ADVANCE(273);
       END_STATE();
     case 273:
       ACCEPT_TOKEN(sym_number_literal);
-      if (lookahead == '\'') ADVANCE(99);
-      if (lookahead == '.') ADVANCE(285);
-      if (lookahead == 'E' ||
-          lookahead == 'e') ADVANCE(280);
-      if (lookahead == 'P' ||
-          lookahead == 'p') ADVANCE(284);
-      if (lookahead == 'A' ||
-          lookahead == 'C' ||
-          lookahead == 'a' ||
-          lookahead == 'c') ADVANCE(282);
-      if (('B' <= lookahead && lookahead <= 'F') ||
-          ('b' <= lookahead && lookahead <= 'f')) ADVANCE(282);
-      if (lookahead == 'L' ||
-          lookahead == 'U' ||
-          lookahead == 'W' ||
-          lookahead == 'l' ||
-          lookahead == 'u' ||
-          lookahead == 'w') ADVANCE(287);
+      ADVANCE_MAP(
+        '\'', 101,
+        '.', 285,
+        'E', 280,
+        'e', 280,
+        'P', 284,
+        'p', 284,
+        'A', 282,
+        'C', 282,
+        'a', 282,
+        'c', 282,
+        'B', 282,
+        'D', 282,
+        'F', 282,
+        'b', 282,
+        'd', 282,
+        'f', 282,
+        'L', 287,
+        'U', 287,
+        'W', 287,
+        'l', 287,
+        'u', 287,
+        'w', 287,
+      );
       if (('0' <= lookahead && lookahead <= '9')) ADVANCE(273);
       END_STATE();
     case 274:
       ACCEPT_TOKEN(sym_number_literal);
-      if (lookahead == '\'') ADVANCE(97);
-      if (lookahead == '.') ADVANCE(285);
-      if (lookahead == 'B' ||
-          lookahead == 'b') ADVANCE(283);
-      if (lookahead == 'X' ||
-          lookahead == 'x') ADVANCE(66);
-      if (lookahead == 'E' ||
-          lookahead == 'P' ||
-          lookahead == 'e' ||
-          lookahead == 'p') ADVANCE(284);
-      if (('D' <= lookahead && lookahead <= 'F') ||
-          lookahead == 'L' ||
-          lookahead == 'U' ||
-          lookahead == 'W' ||
-          ('d' <= lookahead && lookahead <= 'f') ||
-          lookahead == 'l' ||
-          lookahead == 'u' ||
-          lookahead == 'w') ADVANCE(287);
+      ADVANCE_MAP(
+        '\'', 99,
+        '.', 285,
+        'B', 283,
+        'b', 283,
+        'X', 67,
+        'x', 67,
+        'E', 284,
+        'P', 284,
+        'e', 284,
+        'p', 284,
+        'D', 287,
+        'F', 287,
+        'L', 287,
+        'U', 287,
+        'W', 287,
+        'd', 287,
+        'f', 287,
+        'l', 287,
+        'u', 287,
+        'w', 287,
+      );
       if (('0' <= lookahead && lookahead <= '9')) ADVANCE(276);
       END_STATE();
     case 275:
       ACCEPT_TOKEN(sym_number_literal);
-      if (lookahead == '\'') ADVANCE(97);
-      if (lookahead == '.') ADVANCE(285);
-      if (lookahead == 'B' ||
-          lookahead == 'b') ADVANCE(286);
-      if (lookahead == 'X' ||
-          lookahead == 'x') ADVANCE(102);
-      if (lookahead == 'E' ||
-          lookahead == 'P' ||
-          lookahead == 'e' ||
-          lookahead == 'p') ADVANCE(284);
-      if (('D' <= lookahead && lookahead <= 'F') ||
-          lookahead == 'L' ||
-          lookahead == 'U' ||
-          lookahead == 'W' ||
-          ('d' <= lookahead && lookahead <= 'f') ||
-          lookahead == 'l' ||
-          lookahead == 'u' ||
-          lookahead == 'w') ADVANCE(287);
+      ADVANCE_MAP(
+        '\'', 99,
+        '.', 285,
+        'B', 286,
+        'b', 286,
+        'X', 104,
+        'x', 104,
+        'E', 284,
+        'P', 284,
+        'e', 284,
+        'p', 284,
+        'D', 287,
+        'F', 287,
+        'L', 287,
+        'U', 287,
+        'W', 287,
+        'd', 287,
+        'f', 287,
+        'l', 287,
+        'u', 287,
+        'w', 287,
+      );
       if (('0' <= lookahead && lookahead <= '9')) ADVANCE(276);
       END_STATE();
     case 276:
       ACCEPT_TOKEN(sym_number_literal);
-      if (lookahead == '\'') ADVANCE(97);
+      if (lookahead == '\'') ADVANCE(99);
       if (lookahead == '.') ADVANCE(285);
       if (lookahead == 'E' ||
           lookahead == 'P' ||
           lookahead == 'e' ||
           lookahead == 'p') ADVANCE(284);
       if (('0' <= lookahead && lookahead <= '9')) ADVANCE(276);
-      if (sym_number_literal_character_set_1(lookahead)) ADVANCE(287);
+      if (set_contains(sym_number_literal_character_set_13, 13, lookahead)) ADVANCE(287);
       END_STATE();
     case 277:
       ACCEPT_TOKEN(sym_number_literal);
-      if (lookahead == '\'') ADVANCE(103);
-      if (lookahead == 'B' ||
-          lookahead == 'D' ||
-          lookahead == 'F' ||
-          lookahead == 'b' ||
-          lookahead == 'd' ||
-          lookahead == 'f') ADVANCE(277);
-      if (lookahead == 'L' ||
-          lookahead == 'U' ||
-          lookahead == 'W' ||
-          lookahead == 'l' ||
-          lookahead == 'u' ||
-          lookahead == 'w') ADVANCE(287);
+      ADVANCE_MAP(
+        '\'', 105,
+        'B', 277,
+        'D', 277,
+        'F', 277,
+        'b', 277,
+        'd', 277,
+        'f', 277,
+        'L', 287,
+        'U', 287,
+        'W', 287,
+        'l', 287,
+        'u', 287,
+        'w', 287,
+      );
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'E') ||
           ('a' <= lookahead && lookahead <= 'e')) ADVANCE(277);
       END_STATE();
     case 278:
       ACCEPT_TOKEN(sym_number_literal);
-      if (lookahead == '\'') ADVANCE(101);
-      if (lookahead == '+' ||
-          lookahead == '-') ADVANCE(103);
-      if (lookahead == 'E' ||
-          lookahead == 'e') ADVANCE(278);
-      if (lookahead == 'P' ||
-          lookahead == 'p') ADVANCE(284);
-      if (lookahead == 'B' ||
-          ('D' <= lookahead && lookahead <= 'F') ||
-          lookahead == 'b' ||
-          ('d' <= lookahead && lookahead <= 'f')) ADVANCE(279);
-      if (lookahead == 'L' ||
-          lookahead == 'U' ||
-          lookahead == 'W' ||
-          lookahead == 'l' ||
-          lookahead == 'u' ||
-          lookahead == 'w') ADVANCE(287);
+      ADVANCE_MAP(
+        '\'', 103,
+        '+', 105,
+        '-', 105,
+        'E', 278,
+        'e', 278,
+        'P', 284,
+        'p', 284,
+        'B', 279,
+        'D', 279,
+        'F', 279,
+        'b', 279,
+        'd', 279,
+        'f', 279,
+        'L', 287,
+        'U', 287,
+        'W', 287,
+        'l', 287,
+        'u', 287,
+        'w', 287,
+      );
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'C') ||
           ('a' <= lookahead && lookahead <= 'c')) ADVANCE(279);
       END_STATE();
     case 279:
       ACCEPT_TOKEN(sym_number_literal);
-      if (lookahead == '\'') ADVANCE(101);
-      if (lookahead == 'E' ||
-          lookahead == 'e') ADVANCE(278);
-      if (lookahead == 'P' ||
-          lookahead == 'p') ADVANCE(284);
-      if (lookahead == 'B' ||
-          ('D' <= lookahead && lookahead <= 'F') ||
-          lookahead == 'b' ||
-          ('d' <= lookahead && lookahead <= 'f')) ADVANCE(279);
-      if (lookahead == 'L' ||
-          lookahead == 'U' ||
-          lookahead == 'W' ||
-          lookahead == 'l' ||
-          lookahead == 'u' ||
-          lookahead == 'w') ADVANCE(287);
+      ADVANCE_MAP(
+        '\'', 103,
+        'E', 278,
+        'e', 278,
+        'P', 284,
+        'p', 284,
+        'B', 279,
+        'D', 279,
+        'F', 279,
+        'b', 279,
+        'd', 279,
+        'f', 279,
+        'L', 287,
+        'U', 287,
+        'W', 287,
+        'l', 287,
+        'u', 287,
+        'w', 287,
+      );
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'C') ||
           ('a' <= lookahead && lookahead <= 'c')) ADVANCE(279);
       END_STATE();
     case 280:
       ACCEPT_TOKEN(sym_number_literal);
-      if (lookahead == '\'') ADVANCE(102);
-      if (lookahead == '.') ADVANCE(285);
-      if (lookahead == '+' ||
-          lookahead == '-') ADVANCE(103);
-      if (lookahead == 'E' ||
-          lookahead == 'e') ADVANCE(280);
-      if (lookahead == 'P' ||
-          lookahead == 'p') ADVANCE(284);
-      if (lookahead == 'B' ||
-          ('D' <= lookahead && lookahead <= 'F') ||
-          lookahead == 'b' ||
-          ('d' <= lookahead && lookahead <= 'f')) ADVANCE(282);
-      if (lookahead == 'L' ||
-          lookahead == 'U' ||
-          lookahead == 'W' ||
-          lookahead == 'l' ||
-          lookahead == 'u' ||
-          lookahead == 'w') ADVANCE(287);
+      ADVANCE_MAP(
+        '\'', 104,
+        '.', 285,
+        '+', 105,
+        '-', 105,
+        'E', 280,
+        'e', 280,
+        'P', 284,
+        'p', 284,
+        'B', 282,
+        'D', 282,
+        'F', 282,
+        'b', 282,
+        'd', 282,
+        'f', 282,
+        'L', 287,
+        'U', 287,
+        'W', 287,
+        'l', 287,
+        'u', 287,
+        'w', 287,
+      );
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'C') ||
           ('a' <= lookahead && lookahead <= 'c')) ADVANCE(282);
       END_STATE();
     case 281:
       ACCEPT_TOKEN(sym_number_literal);
-      if (lookahead == '\'') ADVANCE(102);
-      if (lookahead == '.') ADVANCE(285);
-      if (lookahead == 'E' ||
-          lookahead == 'e') ADVANCE(280);
-      if (lookahead == 'P' ||
-          lookahead == 'p') ADVANCE(284);
-      if (lookahead == 'A' ||
-          lookahead == 'C' ||
-          lookahead == 'a' ||
-          lookahead == 'c') ADVANCE(282);
-      if (('B' <= lookahead && lookahead <= 'F') ||
-          ('b' <= lookahead && lookahead <= 'f')) ADVANCE(282);
-      if (lookahead == 'L' ||
-          lookahead == 'U' ||
-          lookahead == 'W' ||
-          lookahead == 'l' ||
-          lookahead == 'u' ||
-          lookahead == 'w') ADVANCE(287);
+      ADVANCE_MAP(
+        '\'', 104,
+        '.', 285,
+        'E', 280,
+        'e', 280,
+        'P', 284,
+        'p', 284,
+        'A', 282,
+        'C', 282,
+        'a', 282,
+        'c', 282,
+        'B', 282,
+        'D', 282,
+        'F', 282,
+        'b', 282,
+        'd', 282,
+        'f', 282,
+        'L', 287,
+        'U', 287,
+        'W', 287,
+        'l', 287,
+        'u', 287,
+        'w', 287,
+      );
       if (('0' <= lookahead && lookahead <= '9')) ADVANCE(273);
       END_STATE();
     case 282:
       ACCEPT_TOKEN(sym_number_literal);
-      if (lookahead == '\'') ADVANCE(102);
-      if (lookahead == '.') ADVANCE(285);
-      if (lookahead == 'E' ||
-          lookahead == 'e') ADVANCE(280);
-      if (lookahead == 'P' ||
-          lookahead == 'p') ADVANCE(284);
-      if (lookahead == 'B' ||
-          ('D' <= lookahead && lookahead <= 'F') ||
-          lookahead == 'b' ||
-          ('d' <= lookahead && lookahead <= 'f')) ADVANCE(282);
-      if (lookahead == 'L' ||
-          lookahead == 'U' ||
-          lookahead == 'W' ||
-          lookahead == 'l' ||
-          lookahead == 'u' ||
-          lookahead == 'w') ADVANCE(287);
+      ADVANCE_MAP(
+        '\'', 104,
+        '.', 285,
+        'E', 280,
+        'e', 280,
+        'P', 284,
+        'p', 284,
+        'B', 282,
+        'D', 282,
+        'F', 282,
+        'b', 282,
+        'd', 282,
+        'f', 282,
+        'L', 287,
+        'U', 287,
+        'W', 287,
+        'l', 287,
+        'u', 287,
+        'w', 287,
+      );
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'C') ||
           ('a' <= lookahead && lookahead <= 'c')) ADVANCE(282);
       END_STATE();
     case 283:
       ACCEPT_TOKEN(sym_number_literal);
-      if (lookahead == '.') ADVANCE(98);
+      if (lookahead == '.') ADVANCE(100);
       if (lookahead == '0') ADVANCE(275);
       if (('1' <= lookahead && lookahead <= '9')) ADVANCE(276);
-      if (sym_number_literal_character_set_2(lookahead)) ADVANCE(287);
+      if (set_contains(sym_number_literal_character_set_13, 13, lookahead)) ADVANCE(287);
       END_STATE();
     case 284:
       ACCEPT_TOKEN(sym_number_literal);
-      if (lookahead == '+' ||
-          lookahead == '-') ADVANCE(103);
-      if (lookahead == 'B' ||
-          lookahead == 'D' ||
-          lookahead == 'F' ||
-          lookahead == 'b' ||
-          lookahead == 'd' ||
-          lookahead == 'f') ADVANCE(277);
-      if (lookahead == 'L' ||
-          lookahead == 'U' ||
-          lookahead == 'W' ||
-          lookahead == 'l' ||
-          lookahead == 'u' ||
-          lookahead == 'w') ADVANCE(287);
+      ADVANCE_MAP(
+        '+', 105,
+        '-', 105,
+        'B', 277,
+        'D', 277,
+        'F', 277,
+        'b', 277,
+        'd', 277,
+        'f', 277,
+        'L', 287,
+        'U', 287,
+        'W', 287,
+        'l', 287,
+        'u', 287,
+        'w', 287,
+      );
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'E') ||
           ('a' <= lookahead && lookahead <= 'e')) ADVANCE(277);
       END_STATE();
     case 285:
       ACCEPT_TOKEN(sym_number_literal);
-      if (lookahead == 'E' ||
-          lookahead == 'e') ADVANCE(278);
-      if (lookahead == 'P' ||
-          lookahead == 'p') ADVANCE(284);
-      if (lookahead == 'B' ||
-          ('D' <= lookahead && lookahead <= 'F') ||
-          lookahead == 'b' ||
-          ('d' <= lookahead && lookahead <= 'f')) ADVANCE(279);
-      if (lookahead == 'L' ||
-          lookahead == 'U' ||
-          lookahead == 'W' ||
-          lookahead == 'l' ||
-          lookahead == 'u' ||
-          lookahead == 'w') ADVANCE(287);
+      ADVANCE_MAP(
+        'E', 278,
+        'e', 278,
+        'P', 284,
+        'p', 284,
+        'B', 279,
+        'D', 279,
+        'F', 279,
+        'b', 279,
+        'd', 279,
+        'f', 279,
+        'L', 287,
+        'U', 287,
+        'W', 287,
+        'l', 287,
+        'u', 287,
+        'w', 287,
+      );
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'C') ||
           ('a' <= lookahead && lookahead <= 'c')) ADVANCE(279);
@@ -11884,11 +8505,24 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
     case 286:
       ACCEPT_TOKEN(sym_number_literal);
       if (('0' <= lookahead && lookahead <= '9')) ADVANCE(276);
-      if (sym_number_literal_character_set_2(lookahead)) ADVANCE(287);
+      if (set_contains(sym_number_literal_character_set_13, 13, lookahead)) ADVANCE(287);
       END_STATE();
     case 287:
       ACCEPT_TOKEN(sym_number_literal);
-      if (sym_number_literal_character_set_2(lookahead)) ADVANCE(287);
+      ADVANCE_MAP(
+        'B', 287,
+        'D', 287,
+        'F', 287,
+        'L', 287,
+        'U', 287,
+        'W', 287,
+        'b', 287,
+        'd', 287,
+        'f', 287,
+        'l', 287,
+        'u', 287,
+        'w', 287,
+      );
       END_STATE();
     case 288:
       ACCEPT_TOKEN(anon_sym_L_SQUOTE);
@@ -11912,16 +8546,16 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       ACCEPT_TOKEN(aux_sym_char_literal_token1);
       if (lookahead == '\n') ADVANCE(308);
       if (lookahead == '\r') ADVANCE(307);
-      if (lookahead == 'U') ADVANCE(118);
-      if (lookahead == 'u') ADVANCE(110);
-      if (lookahead == 'x') ADVANCE(106);
+      if (lookahead == 'U') ADVANCE(120);
+      if (lookahead == 'u') ADVANCE(112);
+      if (lookahead == 'x') ADVANCE(108);
       if (('0' <= lookahead && lookahead <= '9')) ADVANCE(310);
       if (lookahead != 0) ADVANCE(307);
       END_STATE();
     case 295:
       ACCEPT_TOKEN(aux_sym_char_literal_token1);
-      if (lookahead == '*') ADVANCE(64);
-      if (lookahead == '/') ADVANCE(331);
+      if (lookahead == '*') ADVANCE(65);
+      if (lookahead == '/') ADVANCE(334);
       END_STATE();
     case 296:
       ACCEPT_TOKEN(aux_sym_char_literal_token1);
@@ -11972,10 +8606,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       ACCEPT_TOKEN(aux_sym_string_literal_token1);
       if (lookahead == '/') ADVANCE(302);
       if (lookahead == '\t' ||
-          (11 <= lookahead && lookahead <= '\r') ||
+          (0x0b <= lookahead && lookahead <= '\r') ||
           lookahead == ' ') ADVANCE(305);
       if (lookahead != 0 &&
-          lookahead != '\n' &&
+          (lookahead < '\t' || '\r' < lookahead) &&
           lookahead != '"' &&
           lookahead != '\\') ADVANCE(306);
       END_STATE();
@@ -12007,160 +8641,152 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
     case 312:
       ACCEPT_TOKEN(sym_system_lib_string);
       if (lookahead == '>') ADVANCE(311);
-      if (lookahead == '\\') ADVANCE(73);
+      if (lookahead == '\\') ADVANCE(75);
       if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(72);
+          lookahead != '\n') ADVANCE(74);
       END_STATE();
     case 313:
       ACCEPT_TOKEN(sym_identifier);
       if (lookahead == '"') ADVANCE(297);
-      if (sym_identifier_character_set_3(lookahead)) ADVANCE(325);
       if (lookahead == '\'') ADVANCE(288);
-      if (lookahead == '\\') ADVANCE(74);
+      if (lookahead == '\\') ADVANCE(76);
+      if (set_contains(sym_identifier_character_set_2, 765, lookahead)) ADVANCE(325);
       END_STATE();
     case 314:
       ACCEPT_TOKEN(sym_identifier);
       if (lookahead == '"') ADVANCE(297);
-      if (sym_identifier_character_set_3(lookahead)) ADVANCE(325);
-      if (lookahead == '\\') ADVANCE(74);
+      if (lookahead == '\\') ADVANCE(76);
+      if (set_contains(sym_identifier_character_set_2, 765, lookahead)) ADVANCE(325);
       END_STATE();
     case 315:
       ACCEPT_TOKEN(sym_identifier);
       if (lookahead == '"') ADVANCE(299);
-      if (sym_identifier_character_set_3(lookahead)) ADVANCE(325);
       if (lookahead == '\'') ADVANCE(290);
-      if (lookahead == '\\') ADVANCE(74);
+      if (lookahead == '\\') ADVANCE(76);
+      if (set_contains(sym_identifier_character_set_2, 765, lookahead)) ADVANCE(325);
       END_STATE();
     case 316:
       ACCEPT_TOKEN(sym_identifier);
       if (lookahead == '"') ADVANCE(299);
-      if (sym_identifier_character_set_3(lookahead)) ADVANCE(325);
-      if (lookahead == '\\') ADVANCE(74);
+      if (lookahead == '\\') ADVANCE(76);
+      if (set_contains(sym_identifier_character_set_2, 765, lookahead)) ADVANCE(325);
       END_STATE();
     case 317:
       ACCEPT_TOKEN(sym_identifier);
       if (lookahead == '"') ADVANCE(298);
-      if (sym_identifier_character_set_4(lookahead)) ADVANCE(325);
       if (lookahead == '\'') ADVANCE(289);
       if (lookahead == '8') ADVANCE(319);
-      if (lookahead == '\\') ADVANCE(74);
+      if (lookahead == '\\') ADVANCE(76);
+      if (set_contains(sym_identifier_character_set_2, 765, lookahead)) ADVANCE(325);
       END_STATE();
     case 318:
       ACCEPT_TOKEN(sym_identifier);
       if (lookahead == '"') ADVANCE(298);
-      if (sym_identifier_character_set_4(lookahead)) ADVANCE(325);
       if (lookahead == '8') ADVANCE(320);
-      if (lookahead == '\\') ADVANCE(74);
+      if (lookahead == '\\') ADVANCE(76);
+      if (set_contains(sym_identifier_character_set_2, 765, lookahead)) ADVANCE(325);
       END_STATE();
     case 319:
       ACCEPT_TOKEN(sym_identifier);
       if (lookahead == '"') ADVANCE(300);
-      if (sym_identifier_character_set_3(lookahead)) ADVANCE(325);
       if (lookahead == '\'') ADVANCE(291);
-      if (lookahead == '\\') ADVANCE(74);
+      if (lookahead == '\\') ADVANCE(76);
+      if (set_contains(sym_identifier_character_set_2, 765, lookahead)) ADVANCE(325);
       END_STATE();
     case 320:
       ACCEPT_TOKEN(sym_identifier);
       if (lookahead == '"') ADVANCE(300);
-      if (sym_identifier_character_set_3(lookahead)) ADVANCE(325);
-      if (lookahead == '\\') ADVANCE(74);
+      if (lookahead == '\\') ADVANCE(76);
+      if (set_contains(sym_identifier_character_set_2, 765, lookahead)) ADVANCE(325);
       END_STATE();
     case 321:
       ACCEPT_TOKEN(sym_identifier);
-      if (sym_identifier_character_set_4(lookahead)) ADVANCE(325);
-      if (lookahead == '\'') ADVANCE(289);
-      if (lookahead == '8') ADVANCE(324);
-      if (lookahead == '\\') ADVANCE(74);
+      if (lookahead == '\'') ADVANCE(288);
+      if (lookahead == '\\') ADVANCE(76);
+      if (set_contains(sym_identifier_character_set_2, 765, lookahead)) ADVANCE(325);
       END_STATE();
     case 322:
       ACCEPT_TOKEN(sym_identifier);
-      if (sym_identifier_character_set_3(lookahead)) ADVANCE(325);
-      if (lookahead == '\'') ADVANCE(288);
-      if (lookahead == '\\') ADVANCE(74);
+      if (lookahead == '\'') ADVANCE(290);
+      if (lookahead == '\\') ADVANCE(76);
+      if (set_contains(sym_identifier_character_set_2, 765, lookahead)) ADVANCE(325);
       END_STATE();
     case 323:
       ACCEPT_TOKEN(sym_identifier);
-      if (sym_identifier_character_set_3(lookahead)) ADVANCE(325);
-      if (lookahead == '\'') ADVANCE(290);
-      if (lookahead == '\\') ADVANCE(74);
+      if (lookahead == '\'') ADVANCE(289);
+      if (lookahead == '8') ADVANCE(324);
+      if (lookahead == '\\') ADVANCE(76);
+      if (set_contains(sym_identifier_character_set_2, 765, lookahead)) ADVANCE(325);
       END_STATE();
     case 324:
       ACCEPT_TOKEN(sym_identifier);
-      if (sym_identifier_character_set_3(lookahead)) ADVANCE(325);
       if (lookahead == '\'') ADVANCE(291);
-      if (lookahead == '\\') ADVANCE(74);
+      if (lookahead == '\\') ADVANCE(76);
+      if (set_contains(sym_identifier_character_set_2, 765, lookahead)) ADVANCE(325);
       END_STATE();
     case 325:
       ACCEPT_TOKEN(sym_identifier);
-      if (sym_identifier_character_set_3(lookahead)) ADVANCE(325);
-      if (lookahead == '\\') ADVANCE(74);
+      if (lookahead == '\\') ADVANCE(76);
+      if (set_contains(sym_identifier_character_set_2, 765, lookahead)) ADVANCE(325);
       END_STATE();
     case 326:
       ACCEPT_TOKEN(sym_identifier);
-      if (sym_identifier_character_set_3(lookahead)) ADVANCE(326);
-      if (lookahead == '\\') ADVANCE(163);
+      if (lookahead == '\\') ADVANCE(153);
+      if (set_contains(sym_identifier_character_set_2, 765, lookahead)) ADVANCE(326);
       END_STATE();
     case 327:
       ACCEPT_TOKEN(sym_comment);
       END_STATE();
     case 328:
       ACCEPT_TOKEN(sym_comment);
-      if (lookahead == '\n') ADVANCE(331);
-      if (lookahead == '/') ADVANCE(329);
-      if (lookahead == '\\') ADVANCE(166);
-      if (lookahead != 0) ADVANCE(330);
+      if (lookahead == '\n') ADVANCE(334);
+      if (lookahead == '/') ADVANCE(331);
+      if (lookahead == '\\') ADVANCE(156);
+      if (lookahead != 0) ADVANCE(332);
       END_STATE();
     case 329:
       ACCEPT_TOKEN(sym_comment);
-      if (lookahead == '*') ADVANCE(331);
-      if (lookahead == '\\') ADVANCE(148);
-      if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(330);
+      if (lookahead == '\r') ADVANCE(335);
+      if (lookahead == '\\') ADVANCE(329);
+      if (lookahead != 0) ADVANCE(334);
       END_STATE();
     case 330:
       ACCEPT_TOKEN(sym_comment);
-      if (lookahead == '/') ADVANCE(329);
-      if (lookahead == '\\') ADVANCE(166);
-      if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(330);
+      if (lookahead == '\r') ADVANCE(333);
+      if (lookahead == '/') ADVANCE(331);
+      if (lookahead == '\\') ADVANCE(330);
+      if (lookahead != 0) ADVANCE(332);
       END_STATE();
     case 331:
       ACCEPT_TOKEN(sym_comment);
-      if (lookahead == '\\') ADVANCE(120);
+      if (lookahead == '*') ADVANCE(334);
+      if (lookahead == '\\') ADVANCE(148);
       if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(331);
+          lookahead != '\n') ADVANCE(332);
       END_STATE();
     case 332:
       ACCEPT_TOKEN(sym_comment);
+      if (lookahead == '/') ADVANCE(331);
+      if (lookahead == '\\') ADVANCE(156);
       if (lookahead != 0 &&
-          lookahead != '\r' &&
-          lookahead != '/' &&
-          lookahead != '\\') ADVANCE(330);
-      if (lookahead == '\r') ADVANCE(334);
-      if (lookahead == '/') ADVANCE(329);
-      if (lookahead == '\\') ADVANCE(332);
+          lookahead != '\n') ADVANCE(332);
       END_STATE();
     case 333:
       ACCEPT_TOKEN(sym_comment);
-      if (lookahead != 0 &&
-          lookahead != '\r' &&
-          lookahead != '\\') ADVANCE(331);
-      if (lookahead == '\r') ADVANCE(335);
-      if (lookahead == '\\') ADVANCE(333);
+      if (lookahead == '/') ADVANCE(331);
+      if (lookahead == '\\') ADVANCE(156);
+      if (lookahead != 0) ADVANCE(332);
       END_STATE();
     case 334:
       ACCEPT_TOKEN(sym_comment);
+      if (lookahead == '\\') ADVANCE(44);
       if (lookahead != 0 &&
-          lookahead != '/' &&
-          lookahead != '\\') ADVANCE(330);
-      if (lookahead == '/') ADVANCE(329);
-      if (lookahead == '\\') ADVANCE(166);
+          lookahead != '\n') ADVANCE(334);
       END_STATE();
     case 335:
       ACCEPT_TOKEN(sym_comment);
-      if (lookahead != 0 &&
-          lookahead != '\\') ADVANCE(331);
-      if (lookahead == '\\') ADVANCE(120);
+      if (lookahead == '\\') ADVANCE(44);
+      if (lookahead != 0) ADVANCE(334);
       END_STATE();
     case 336:
       ACCEPT_TOKEN(aux_sym_preproc_extension_token1);
@@ -12180,7 +8806,7 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
       if (lookahead == 'F') ADVANCE(1);
       if (lookahead == 'N') ADVANCE(2);
       if (lookahead == 'T') ADVANCE(3);
-      if (lookahead == '\\') SKIP(4)
+      if (lookahead == '\\') SKIP(4);
       if (lookahead == '_') ADVANCE(5);
       if (lookahead == 'a') ADVANCE(6);
       if (lookahead == 'b') ADVANCE(7);
@@ -12203,7 +8829,7 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
       if (lookahead == 'v') ADVANCE(24);
       if (lookahead == 'w') ADVANCE(25);
       if (('\t' <= lookahead && lookahead <= '\r') ||
-          lookahead == ' ') SKIP(0)
+          lookahead == ' ') SKIP(0);
       END_STATE();
     case 1:
       if (lookahead == 'A') ADVANCE(26);
@@ -12215,8 +8841,8 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
       if (lookahead == 'R') ADVANCE(28);
       END_STATE();
     case 4:
-      if (lookahead == '\n') SKIP(0)
-      if (lookahead == '\r') SKIP(29)
+      if (lookahead == '\n') SKIP(0);
+      if (lookahead == '\r') SKIP(29);
       END_STATE();
     case 5:
       if (lookahead == 'A') ADVANCE(30);
@@ -12294,14 +8920,16 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
       if (lookahead == 'e') ADVANCE(72);
       END_STATE();
     case 21:
-      if (lookahead == 'a') ADVANCE(73);
-      if (lookahead == 'h') ADVANCE(74);
-      if (lookahead == 'i') ADVANCE(75);
-      if (lookahead == 'm') ADVANCE(76);
-      if (lookahead == 's') ADVANCE(77);
-      if (lookahead == 't') ADVANCE(78);
-      if (lookahead == 'u') ADVANCE(79);
-      if (lookahead == 'w') ADVANCE(80);
+      ADVANCE_MAP(
+        'a', 73,
+        'h', 74,
+        'i', 75,
+        'm', 76,
+        's', 77,
+        't', 78,
+        'u', 79,
+        'w', 80,
+      );
       END_STATE();
     case 22:
       if (lookahead == 'h') ADVANCE(81);
@@ -12331,7 +8959,7 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
       if (lookahead == 'U') ADVANCE(93);
       END_STATE();
     case 29:
-      if (lookahead == '\n') SKIP(0)
+      if (lookahead == '\n') SKIP(0);
       END_STATE();
     case 30:
       if (lookahead == 'l') ADVANCE(94);
@@ -12344,19 +8972,21 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
       if (lookahead == 'o') ADVANCE(97);
       END_STATE();
     case 33:
-      if (lookahead == 'a') ADVANCE(98);
-      if (lookahead == 'b') ADVANCE(99);
-      if (lookahead == 'c') ADVANCE(100);
-      if (lookahead == 'd') ADVANCE(101);
-      if (lookahead == 'e') ADVANCE(102);
-      if (lookahead == 'f') ADVANCE(103);
-      if (lookahead == 'i') ADVANCE(104);
-      if (lookahead == 'l') ADVANCE(105);
-      if (lookahead == 'r') ADVANCE(106);
-      if (lookahead == 's') ADVANCE(107);
-      if (lookahead == 't') ADVANCE(108);
-      if (lookahead == 'u') ADVANCE(109);
-      if (lookahead == 'v') ADVANCE(110);
+      ADVANCE_MAP(
+        'a', 98,
+        'b', 99,
+        'c', 100,
+        'd', 101,
+        'e', 102,
+        'f', 103,
+        'i', 104,
+        'l', 105,
+        'r', 106,
+        's', 107,
+        't', 108,
+        'u', 109,
+        'v', 110,
+      );
       END_STATE();
     case 34:
       if (lookahead == 'l') ADVANCE(111);
@@ -14467,29 +11097,29 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
 static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [0] = {.lex_state = 0},
   [1] = {.lex_state = 123},
-  [2] = {.lex_state = 46},
-  [3] = {.lex_state = 46},
-  [4] = {.lex_state = 46},
-  [5] = {.lex_state = 46},
-  [6] = {.lex_state = 46},
-  [7] = {.lex_state = 46},
-  [8] = {.lex_state = 46},
-  [9] = {.lex_state = 46},
-  [10] = {.lex_state = 46},
-  [11] = {.lex_state = 46},
-  [12] = {.lex_state = 46},
-  [13] = {.lex_state = 46},
-  [14] = {.lex_state = 46},
-  [15] = {.lex_state = 46},
-  [16] = {.lex_state = 46},
-  [17] = {.lex_state = 46},
-  [18] = {.lex_state = 46},
-  [19] = {.lex_state = 46},
-  [20] = {.lex_state = 46},
-  [21] = {.lex_state = 46},
-  [22] = {.lex_state = 46},
+  [2] = {.lex_state = 47},
+  [3] = {.lex_state = 47},
+  [4] = {.lex_state = 47},
+  [5] = {.lex_state = 47},
+  [6] = {.lex_state = 47},
+  [7] = {.lex_state = 47},
+  [8] = {.lex_state = 47},
+  [9] = {.lex_state = 47},
+  [10] = {.lex_state = 47},
+  [11] = {.lex_state = 47},
+  [12] = {.lex_state = 47},
+  [13] = {.lex_state = 47},
+  [14] = {.lex_state = 47},
+  [15] = {.lex_state = 47},
+  [16] = {.lex_state = 47},
+  [17] = {.lex_state = 47},
+  [18] = {.lex_state = 47},
+  [19] = {.lex_state = 47},
+  [20] = {.lex_state = 47},
+  [21] = {.lex_state = 47},
+  [22] = {.lex_state = 47},
   [23] = {.lex_state = 123},
-  [24] = {.lex_state = 48},
+  [24] = {.lex_state = 49},
   [25] = {.lex_state = 123},
   [26] = {.lex_state = 123},
   [27] = {.lex_state = 123},
@@ -14501,25 +11131,25 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [33] = {.lex_state = 123},
   [34] = {.lex_state = 123},
   [35] = {.lex_state = 123},
-  [36] = {.lex_state = 48},
+  [36] = {.lex_state = 49},
   [37] = {.lex_state = 123},
   [38] = {.lex_state = 123},
-  [39] = {.lex_state = 48},
+  [39] = {.lex_state = 49},
   [40] = {.lex_state = 123},
   [41] = {.lex_state = 123},
   [42] = {.lex_state = 123},
   [43] = {.lex_state = 123},
   [44] = {.lex_state = 123},
-  [45] = {.lex_state = 46},
-  [46] = {.lex_state = 46},
-  [47] = {.lex_state = 46},
-  [48] = {.lex_state = 46},
-  [49] = {.lex_state = 46},
-  [50] = {.lex_state = 48},
+  [45] = {.lex_state = 47},
+  [46] = {.lex_state = 47},
+  [47] = {.lex_state = 47},
+  [48] = {.lex_state = 47},
+  [49] = {.lex_state = 47},
+  [50] = {.lex_state = 49},
   [51] = {.lex_state = 123},
-  [52] = {.lex_state = 48},
-  [53] = {.lex_state = 48},
-  [54] = {.lex_state = 48},
+  [52] = {.lex_state = 49},
+  [53] = {.lex_state = 49},
+  [54] = {.lex_state = 49},
   [55] = {.lex_state = 123},
   [56] = {.lex_state = 123},
   [57] = {.lex_state = 123},
@@ -14528,7 +11158,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [60] = {.lex_state = 123},
   [61] = {.lex_state = 123},
   [62] = {.lex_state = 123},
-  [63] = {.lex_state = 48},
+  [63] = {.lex_state = 49},
   [64] = {.lex_state = 123},
   [65] = {.lex_state = 123},
   [66] = {.lex_state = 123},
@@ -14540,161 +11170,161 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [72] = {.lex_state = 123},
   [73] = {.lex_state = 123},
   [74] = {.lex_state = 123},
-  [75] = {.lex_state = 46},
-  [76] = {.lex_state = 46},
-  [77] = {.lex_state = 46},
-  [78] = {.lex_state = 46},
-  [79] = {.lex_state = 46},
-  [80] = {.lex_state = 46},
-  [81] = {.lex_state = 46},
-  [82] = {.lex_state = 46},
-  [83] = {.lex_state = 46},
-  [84] = {.lex_state = 46},
-  [85] = {.lex_state = 46},
-  [86] = {.lex_state = 46},
-  [87] = {.lex_state = 46},
-  [88] = {.lex_state = 46},
-  [89] = {.lex_state = 46},
-  [90] = {.lex_state = 46},
-  [91] = {.lex_state = 46},
-  [92] = {.lex_state = 46},
-  [93] = {.lex_state = 46},
-  [94] = {.lex_state = 46},
-  [95] = {.lex_state = 46},
-  [96] = {.lex_state = 46},
-  [97] = {.lex_state = 46},
-  [98] = {.lex_state = 46},
-  [99] = {.lex_state = 46},
-  [100] = {.lex_state = 46},
-  [101] = {.lex_state = 46},
-  [102] = {.lex_state = 46},
-  [103] = {.lex_state = 46},
+  [75] = {.lex_state = 47},
+  [76] = {.lex_state = 47},
+  [77] = {.lex_state = 47},
+  [78] = {.lex_state = 47},
+  [79] = {.lex_state = 47},
+  [80] = {.lex_state = 47},
+  [81] = {.lex_state = 47},
+  [82] = {.lex_state = 47},
+  [83] = {.lex_state = 47},
+  [84] = {.lex_state = 47},
+  [85] = {.lex_state = 47},
+  [86] = {.lex_state = 47},
+  [87] = {.lex_state = 47},
+  [88] = {.lex_state = 47},
+  [89] = {.lex_state = 47},
+  [90] = {.lex_state = 47},
+  [91] = {.lex_state = 47},
+  [92] = {.lex_state = 47},
+  [93] = {.lex_state = 47},
+  [94] = {.lex_state = 47},
+  [95] = {.lex_state = 47},
+  [96] = {.lex_state = 47},
+  [97] = {.lex_state = 47},
+  [98] = {.lex_state = 47},
+  [99] = {.lex_state = 47},
+  [100] = {.lex_state = 47},
+  [101] = {.lex_state = 47},
+  [102] = {.lex_state = 47},
+  [103] = {.lex_state = 47},
   [104] = {.lex_state = 123},
-  [105] = {.lex_state = 46},
-  [106] = {.lex_state = 46},
-  [107] = {.lex_state = 46},
-  [108] = {.lex_state = 46},
-  [109] = {.lex_state = 46},
-  [110] = {.lex_state = 46},
-  [111] = {.lex_state = 46},
-  [112] = {.lex_state = 46},
-  [113] = {.lex_state = 46},
-  [114] = {.lex_state = 46},
-  [115] = {.lex_state = 46},
-  [116] = {.lex_state = 46},
+  [105] = {.lex_state = 47},
+  [106] = {.lex_state = 47},
+  [107] = {.lex_state = 47},
+  [108] = {.lex_state = 47},
+  [109] = {.lex_state = 47},
+  [110] = {.lex_state = 47},
+  [111] = {.lex_state = 47},
+  [112] = {.lex_state = 47},
+  [113] = {.lex_state = 47},
+  [114] = {.lex_state = 47},
+  [115] = {.lex_state = 47},
+  [116] = {.lex_state = 47},
   [117] = {.lex_state = 123},
-  [118] = {.lex_state = 46},
-  [119] = {.lex_state = 46},
-  [120] = {.lex_state = 46},
-  [121] = {.lex_state = 46},
-  [122] = {.lex_state = 46},
-  [123] = {.lex_state = 46},
-  [124] = {.lex_state = 46},
-  [125] = {.lex_state = 46},
-  [126] = {.lex_state = 46},
-  [127] = {.lex_state = 46},
-  [128] = {.lex_state = 46},
-  [129] = {.lex_state = 46},
-  [130] = {.lex_state = 46},
-  [131] = {.lex_state = 46},
-  [132] = {.lex_state = 46},
-  [133] = {.lex_state = 46},
-  [134] = {.lex_state = 46},
-  [135] = {.lex_state = 46},
-  [136] = {.lex_state = 46},
-  [137] = {.lex_state = 46},
-  [138] = {.lex_state = 46},
-  [139] = {.lex_state = 46},
-  [140] = {.lex_state = 46},
-  [141] = {.lex_state = 46},
-  [142] = {.lex_state = 46},
-  [143] = {.lex_state = 46},
-  [144] = {.lex_state = 46},
-  [145] = {.lex_state = 46},
-  [146] = {.lex_state = 46},
-  [147] = {.lex_state = 46},
-  [148] = {.lex_state = 46},
-  [149] = {.lex_state = 46},
-  [150] = {.lex_state = 46},
-  [151] = {.lex_state = 46},
-  [152] = {.lex_state = 46},
-  [153] = {.lex_state = 46},
-  [154] = {.lex_state = 46},
-  [155] = {.lex_state = 46},
-  [156] = {.lex_state = 46},
-  [157] = {.lex_state = 46},
-  [158] = {.lex_state = 46},
-  [159] = {.lex_state = 46},
-  [160] = {.lex_state = 46},
-  [161] = {.lex_state = 46},
-  [162] = {.lex_state = 46},
-  [163] = {.lex_state = 46},
-  [164] = {.lex_state = 46},
-  [165] = {.lex_state = 46},
-  [166] = {.lex_state = 46},
-  [167] = {.lex_state = 46},
-  [168] = {.lex_state = 46},
-  [169] = {.lex_state = 46},
-  [170] = {.lex_state = 46},
-  [171] = {.lex_state = 46},
-  [172] = {.lex_state = 46},
-  [173] = {.lex_state = 46},
-  [174] = {.lex_state = 46},
-  [175] = {.lex_state = 46},
-  [176] = {.lex_state = 46},
-  [177] = {.lex_state = 46},
-  [178] = {.lex_state = 46},
-  [179] = {.lex_state = 46},
-  [180] = {.lex_state = 46},
-  [181] = {.lex_state = 48},
+  [118] = {.lex_state = 47},
+  [119] = {.lex_state = 47},
+  [120] = {.lex_state = 47},
+  [121] = {.lex_state = 47},
+  [122] = {.lex_state = 47},
+  [123] = {.lex_state = 47},
+  [124] = {.lex_state = 47},
+  [125] = {.lex_state = 47},
+  [126] = {.lex_state = 47},
+  [127] = {.lex_state = 47},
+  [128] = {.lex_state = 47},
+  [129] = {.lex_state = 47},
+  [130] = {.lex_state = 47},
+  [131] = {.lex_state = 47},
+  [132] = {.lex_state = 47},
+  [133] = {.lex_state = 47},
+  [134] = {.lex_state = 47},
+  [135] = {.lex_state = 47},
+  [136] = {.lex_state = 47},
+  [137] = {.lex_state = 47},
+  [138] = {.lex_state = 47},
+  [139] = {.lex_state = 47},
+  [140] = {.lex_state = 47},
+  [141] = {.lex_state = 47},
+  [142] = {.lex_state = 47},
+  [143] = {.lex_state = 47},
+  [144] = {.lex_state = 47},
+  [145] = {.lex_state = 47},
+  [146] = {.lex_state = 47},
+  [147] = {.lex_state = 47},
+  [148] = {.lex_state = 47},
+  [149] = {.lex_state = 47},
+  [150] = {.lex_state = 47},
+  [151] = {.lex_state = 47},
+  [152] = {.lex_state = 47},
+  [153] = {.lex_state = 47},
+  [154] = {.lex_state = 47},
+  [155] = {.lex_state = 47},
+  [156] = {.lex_state = 47},
+  [157] = {.lex_state = 47},
+  [158] = {.lex_state = 47},
+  [159] = {.lex_state = 47},
+  [160] = {.lex_state = 47},
+  [161] = {.lex_state = 47},
+  [162] = {.lex_state = 47},
+  [163] = {.lex_state = 47},
+  [164] = {.lex_state = 47},
+  [165] = {.lex_state = 47},
+  [166] = {.lex_state = 47},
+  [167] = {.lex_state = 47},
+  [168] = {.lex_state = 47},
+  [169] = {.lex_state = 47},
+  [170] = {.lex_state = 47},
+  [171] = {.lex_state = 47},
+  [172] = {.lex_state = 47},
+  [173] = {.lex_state = 47},
+  [174] = {.lex_state = 47},
+  [175] = {.lex_state = 47},
+  [176] = {.lex_state = 47},
+  [177] = {.lex_state = 47},
+  [178] = {.lex_state = 47},
+  [179] = {.lex_state = 47},
+  [180] = {.lex_state = 47},
+  [181] = {.lex_state = 49},
   [182] = {.lex_state = 123},
   [183] = {.lex_state = 123},
-  [184] = {.lex_state = 48},
+  [184] = {.lex_state = 49},
   [185] = {.lex_state = 123},
   [186] = {.lex_state = 123},
   [187] = {.lex_state = 123},
   [188] = {.lex_state = 123},
-  [189] = {.lex_state = 48},
-  [190] = {.lex_state = 48},
-  [191] = {.lex_state = 48},
+  [189] = {.lex_state = 49},
+  [190] = {.lex_state = 49},
+  [191] = {.lex_state = 49},
   [192] = {.lex_state = 123},
-  [193] = {.lex_state = 48},
-  [194] = {.lex_state = 48},
+  [193] = {.lex_state = 49},
+  [194] = {.lex_state = 49},
   [195] = {.lex_state = 123},
-  [196] = {.lex_state = 48},
-  [197] = {.lex_state = 48},
-  [198] = {.lex_state = 48},
-  [199] = {.lex_state = 48},
-  [200] = {.lex_state = 48},
-  [201] = {.lex_state = 48},
-  [202] = {.lex_state = 48},
-  [203] = {.lex_state = 48},
-  [204] = {.lex_state = 48},
-  [205] = {.lex_state = 48},
-  [206] = {.lex_state = 48},
-  [207] = {.lex_state = 48},
-  [208] = {.lex_state = 48},
-  [209] = {.lex_state = 48},
-  [210] = {.lex_state = 48},
-  [211] = {.lex_state = 48},
-  [212] = {.lex_state = 48},
-  [213] = {.lex_state = 48},
-  [214] = {.lex_state = 48},
-  [215] = {.lex_state = 48},
-  [216] = {.lex_state = 48},
-  [217] = {.lex_state = 48},
-  [218] = {.lex_state = 48},
-  [219] = {.lex_state = 48},
-  [220] = {.lex_state = 48},
-  [221] = {.lex_state = 48},
-  [222] = {.lex_state = 48},
-  [223] = {.lex_state = 48},
-  [224] = {.lex_state = 48},
-  [225] = {.lex_state = 48},
-  [226] = {.lex_state = 48},
-  [227] = {.lex_state = 48},
-  [228] = {.lex_state = 48},
-  [229] = {.lex_state = 48},
+  [196] = {.lex_state = 49},
+  [197] = {.lex_state = 49},
+  [198] = {.lex_state = 49},
+  [199] = {.lex_state = 49},
+  [200] = {.lex_state = 49},
+  [201] = {.lex_state = 49},
+  [202] = {.lex_state = 49},
+  [203] = {.lex_state = 49},
+  [204] = {.lex_state = 49},
+  [205] = {.lex_state = 49},
+  [206] = {.lex_state = 49},
+  [207] = {.lex_state = 49},
+  [208] = {.lex_state = 49},
+  [209] = {.lex_state = 49},
+  [210] = {.lex_state = 49},
+  [211] = {.lex_state = 49},
+  [212] = {.lex_state = 49},
+  [213] = {.lex_state = 49},
+  [214] = {.lex_state = 49},
+  [215] = {.lex_state = 49},
+  [216] = {.lex_state = 49},
+  [217] = {.lex_state = 49},
+  [218] = {.lex_state = 49},
+  [219] = {.lex_state = 49},
+  [220] = {.lex_state = 49},
+  [221] = {.lex_state = 49},
+  [222] = {.lex_state = 49},
+  [223] = {.lex_state = 49},
+  [224] = {.lex_state = 49},
+  [225] = {.lex_state = 49},
+  [226] = {.lex_state = 49},
+  [227] = {.lex_state = 49},
+  [228] = {.lex_state = 49},
+  [229] = {.lex_state = 49},
   [230] = {.lex_state = 123},
   [231] = {.lex_state = 123},
   [232] = {.lex_state = 123},
@@ -14723,7 +11353,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [255] = {.lex_state = 123},
   [256] = {.lex_state = 123},
   [257] = {.lex_state = 123},
-  [258] = {.lex_state = 48},
+  [258] = {.lex_state = 49},
   [259] = {.lex_state = 123},
   [260] = {.lex_state = 123},
   [261] = {.lex_state = 123},
@@ -14736,17 +11366,17 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [268] = {.lex_state = 123},
   [269] = {.lex_state = 123},
   [270] = {.lex_state = 123},
-  [271] = {.lex_state = 48},
-  [272] = {.lex_state = 48},
+  [271] = {.lex_state = 49},
+  [272] = {.lex_state = 49},
   [273] = {.lex_state = 123},
   [274] = {.lex_state = 123},
   [275] = {.lex_state = 123},
   [276] = {.lex_state = 123},
-  [277] = {.lex_state = 48},
-  [278] = {.lex_state = 48},
+  [277] = {.lex_state = 49},
+  [278] = {.lex_state = 49},
   [279] = {.lex_state = 123},
-  [280] = {.lex_state = 48},
-  [281] = {.lex_state = 48},
+  [280] = {.lex_state = 49},
+  [281] = {.lex_state = 49},
   [282] = {.lex_state = 123},
   [283] = {.lex_state = 123},
   [284] = {.lex_state = 123},
@@ -14756,11 +11386,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [288] = {.lex_state = 123},
   [289] = {.lex_state = 123},
   [290] = {.lex_state = 123},
-  [291] = {.lex_state = 48},
-  [292] = {.lex_state = 48},
+  [291] = {.lex_state = 49},
+  [292] = {.lex_state = 49},
   [293] = {.lex_state = 123},
-  [294] = {.lex_state = 48},
-  [295] = {.lex_state = 48},
+  [294] = {.lex_state = 49},
+  [295] = {.lex_state = 49},
   [296] = {.lex_state = 123},
   [297] = {.lex_state = 123},
   [298] = {.lex_state = 123},
@@ -14768,13 +11398,13 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [300] = {.lex_state = 123},
   [301] = {.lex_state = 123},
   [302] = {.lex_state = 123},
-  [303] = {.lex_state = 48},
+  [303] = {.lex_state = 49},
   [304] = {.lex_state = 123},
-  [305] = {.lex_state = 48},
+  [305] = {.lex_state = 49},
   [306] = {.lex_state = 123},
-  [307] = {.lex_state = 48},
+  [307] = {.lex_state = 49},
   [308] = {.lex_state = 123},
-  [309] = {.lex_state = 48},
+  [309] = {.lex_state = 49},
   [310] = {.lex_state = 123},
   [311] = {.lex_state = 123},
   [312] = {.lex_state = 123},
@@ -14786,7 +11416,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [318] = {.lex_state = 123},
   [319] = {.lex_state = 123},
   [320] = {.lex_state = 123},
-  [321] = {.lex_state = 48},
+  [321] = {.lex_state = 49},
   [322] = {.lex_state = 123},
   [323] = {.lex_state = 123},
   [324] = {.lex_state = 123},
@@ -14817,8 +11447,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [349] = {.lex_state = 123},
   [350] = {.lex_state = 123},
   [351] = {.lex_state = 123},
-  [352] = {.lex_state = 48},
-  [353] = {.lex_state = 48},
+  [352] = {.lex_state = 49},
+  [353] = {.lex_state = 49},
   [354] = {.lex_state = 123},
   [355] = {.lex_state = 123},
   [356] = {.lex_state = 123},
@@ -14828,83 +11458,83 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [360] = {.lex_state = 123},
   [361] = {.lex_state = 123},
   [362] = {.lex_state = 123},
-  [363] = {.lex_state = 48},
-  [364] = {.lex_state = 48},
+  [363] = {.lex_state = 49},
+  [364] = {.lex_state = 49},
   [365] = {.lex_state = 123},
   [366] = {.lex_state = 123},
-  [367] = {.lex_state = 48},
+  [367] = {.lex_state = 49},
   [368] = {.lex_state = 123},
-  [369] = {.lex_state = 48},
-  [370] = {.lex_state = 48},
+  [369] = {.lex_state = 49},
+  [370] = {.lex_state = 49},
   [371] = {.lex_state = 123},
-  [372] = {.lex_state = 48},
+  [372] = {.lex_state = 49},
   [373] = {.lex_state = 123},
   [374] = {.lex_state = 123},
   [375] = {.lex_state = 123},
-  [376] = {.lex_state = 48},
+  [376] = {.lex_state = 49},
   [377] = {.lex_state = 123},
-  [378] = {.lex_state = 48},
-  [379] = {.lex_state = 48},
-  [380] = {.lex_state = 48},
-  [381] = {.lex_state = 48},
-  [382] = {.lex_state = 48},
+  [378] = {.lex_state = 49},
+  [379] = {.lex_state = 49},
+  [380] = {.lex_state = 49},
+  [381] = {.lex_state = 49},
+  [382] = {.lex_state = 49},
   [383] = {.lex_state = 123},
-  [384] = {.lex_state = 48},
+  [384] = {.lex_state = 49},
   [385] = {.lex_state = 123},
-  [386] = {.lex_state = 48},
+  [386] = {.lex_state = 49},
   [387] = {.lex_state = 123},
   [388] = {.lex_state = 123},
-  [389] = {.lex_state = 48},
-  [390] = {.lex_state = 48},
-  [391] = {.lex_state = 48},
-  [392] = {.lex_state = 48},
-  [393] = {.lex_state = 48},
+  [389] = {.lex_state = 49},
+  [390] = {.lex_state = 49},
+  [391] = {.lex_state = 49},
+  [392] = {.lex_state = 49},
+  [393] = {.lex_state = 49},
   [394] = {.lex_state = 123},
-  [395] = {.lex_state = 48},
-  [396] = {.lex_state = 48},
+  [395] = {.lex_state = 49},
+  [396] = {.lex_state = 49},
   [397] = {.lex_state = 123},
   [398] = {.lex_state = 123},
   [399] = {.lex_state = 123},
-  [400] = {.lex_state = 48},
-  [401] = {.lex_state = 48},
+  [400] = {.lex_state = 49},
+  [401] = {.lex_state = 49},
   [402] = {.lex_state = 123},
   [403] = {.lex_state = 123},
   [404] = {.lex_state = 123},
-  [405] = {.lex_state = 48},
-  [406] = {.lex_state = 48},
+  [405] = {.lex_state = 49},
+  [406] = {.lex_state = 49},
   [407] = {.lex_state = 123},
-  [408] = {.lex_state = 48},
-  [409] = {.lex_state = 48},
-  [410] = {.lex_state = 48},
-  [411] = {.lex_state = 48},
+  [408] = {.lex_state = 49},
+  [409] = {.lex_state = 49},
+  [410] = {.lex_state = 49},
+  [411] = {.lex_state = 49},
   [412] = {.lex_state = 123},
-  [413] = {.lex_state = 48},
-  [414] = {.lex_state = 48},
-  [415] = {.lex_state = 48},
-  [416] = {.lex_state = 48},
-  [417] = {.lex_state = 48},
+  [413] = {.lex_state = 49},
+  [414] = {.lex_state = 49},
+  [415] = {.lex_state = 49},
+  [416] = {.lex_state = 49},
+  [417] = {.lex_state = 49},
   [418] = {.lex_state = 123},
   [419] = {.lex_state = 123},
   [420] = {.lex_state = 123},
-  [421] = {.lex_state = 48},
+  [421] = {.lex_state = 49},
   [422] = {.lex_state = 123},
   [423] = {.lex_state = 123},
-  [424] = {.lex_state = 48},
+  [424] = {.lex_state = 49},
   [425] = {.lex_state = 123},
   [426] = {.lex_state = 123},
   [427] = {.lex_state = 123},
   [428] = {.lex_state = 123},
-  [429] = {.lex_state = 48},
+  [429] = {.lex_state = 49},
   [430] = {.lex_state = 123},
   [431] = {.lex_state = 123},
-  [432] = {.lex_state = 48},
-  [433] = {.lex_state = 48},
+  [432] = {.lex_state = 49},
+  [433] = {.lex_state = 49},
   [434] = {.lex_state = 123},
-  [435] = {.lex_state = 48},
-  [436] = {.lex_state = 48},
-  [437] = {.lex_state = 48},
+  [435] = {.lex_state = 49},
+  [436] = {.lex_state = 49},
+  [437] = {.lex_state = 49},
   [438] = {.lex_state = 123},
-  [439] = {.lex_state = 48},
+  [439] = {.lex_state = 49},
   [440] = {.lex_state = 123},
   [441] = {.lex_state = 123},
   [442] = {.lex_state = 123},
@@ -14912,10 +11542,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [444] = {.lex_state = 123},
   [445] = {.lex_state = 123},
   [446] = {.lex_state = 123},
-  [447] = {.lex_state = 48},
+  [447] = {.lex_state = 49},
   [448] = {.lex_state = 123},
   [449] = {.lex_state = 123},
-  [450] = {.lex_state = 48},
+  [450] = {.lex_state = 49},
   [451] = {.lex_state = 123},
   [452] = {.lex_state = 123},
   [453] = {.lex_state = 123},
@@ -14958,36 +11588,36 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [490] = {.lex_state = 123},
   [491] = {.lex_state = 123},
   [492] = {.lex_state = 123},
-  [493] = {.lex_state = 54},
-  [494] = {.lex_state = 54},
-  [495] = {.lex_state = 54},
-  [496] = {.lex_state = 54},
-  [497] = {.lex_state = 54},
-  [498] = {.lex_state = 54},
-  [499] = {.lex_state = 54},
-  [500] = {.lex_state = 54},
-  [501] = {.lex_state = 54},
-  [502] = {.lex_state = 54},
-  [503] = {.lex_state = 54},
-  [504] = {.lex_state = 54},
-  [505] = {.lex_state = 54},
-  [506] = {.lex_state = 54},
-  [507] = {.lex_state = 54},
-  [508] = {.lex_state = 54},
-  [509] = {.lex_state = 54},
-  [510] = {.lex_state = 55},
-  [511] = {.lex_state = 55},
-  [512] = {.lex_state = 55},
-  [513] = {.lex_state = 59},
-  [514] = {.lex_state = 59},
-  [515] = {.lex_state = 59},
-  [516] = {.lex_state = 54},
-  [517] = {.lex_state = 54},
-  [518] = {.lex_state = 54},
-  [519] = {.lex_state = 54},
-  [520] = {.lex_state = 45},
-  [521] = {.lex_state = 45},
-  [522] = {.lex_state = 54},
+  [493] = {.lex_state = 55},
+  [494] = {.lex_state = 55},
+  [495] = {.lex_state = 55},
+  [496] = {.lex_state = 55},
+  [497] = {.lex_state = 55},
+  [498] = {.lex_state = 55},
+  [499] = {.lex_state = 55},
+  [500] = {.lex_state = 55},
+  [501] = {.lex_state = 55},
+  [502] = {.lex_state = 55},
+  [503] = {.lex_state = 55},
+  [504] = {.lex_state = 55},
+  [505] = {.lex_state = 55},
+  [506] = {.lex_state = 55},
+  [507] = {.lex_state = 55},
+  [508] = {.lex_state = 55},
+  [509] = {.lex_state = 55},
+  [510] = {.lex_state = 56},
+  [511] = {.lex_state = 56},
+  [512] = {.lex_state = 56},
+  [513] = {.lex_state = 60},
+  [514] = {.lex_state = 60},
+  [515] = {.lex_state = 60},
+  [516] = {.lex_state = 55},
+  [517] = {.lex_state = 55},
+  [518] = {.lex_state = 55},
+  [519] = {.lex_state = 55},
+  [520] = {.lex_state = 46},
+  [521] = {.lex_state = 46},
+  [522] = {.lex_state = 55},
   [523] = {.lex_state = 123},
   [524] = {.lex_state = 123},
   [525] = {.lex_state = 123},
@@ -15027,11 +11657,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [559] = {.lex_state = 123},
   [560] = {.lex_state = 123},
   [561] = {.lex_state = 123},
-  [562] = {.lex_state = 45},
-  [563] = {.lex_state = 54},
-  [564] = {.lex_state = 54},
-  [565] = {.lex_state = 54},
-  [566] = {.lex_state = 54},
+  [562] = {.lex_state = 46},
+  [563] = {.lex_state = 55},
+  [564] = {.lex_state = 55},
+  [565] = {.lex_state = 55},
+  [566] = {.lex_state = 55},
   [567] = {.lex_state = 123},
   [568] = {.lex_state = 123},
   [569] = {.lex_state = 123},
@@ -15044,101 +11674,101 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [576] = {.lex_state = 123},
   [577] = {.lex_state = 123},
   [578] = {.lex_state = 123},
-  [579] = {.lex_state = 54},
-  [580] = {.lex_state = 54},
-  [581] = {.lex_state = 54},
-  [582] = {.lex_state = 54},
-  [583] = {.lex_state = 54},
-  [584] = {.lex_state = 54},
-  [585] = {.lex_state = 54},
-  [586] = {.lex_state = 54},
-  [587] = {.lex_state = 54},
+  [579] = {.lex_state = 55},
+  [580] = {.lex_state = 55},
+  [581] = {.lex_state = 55},
+  [582] = {.lex_state = 55},
+  [583] = {.lex_state = 55},
+  [584] = {.lex_state = 55},
+  [585] = {.lex_state = 55},
+  [586] = {.lex_state = 55},
+  [587] = {.lex_state = 55},
   [588] = {.lex_state = 123},
-  [589] = {.lex_state = 45},
+  [589] = {.lex_state = 46},
   [590] = {.lex_state = 123},
-  [591] = {.lex_state = 45},
-  [592] = {.lex_state = 51},
-  [593] = {.lex_state = 51},
-  [594] = {.lex_state = 51},
-  [595] = {.lex_state = 51},
-  [596] = {.lex_state = 51},
-  [597] = {.lex_state = 51},
-  [598] = {.lex_state = 51},
-  [599] = {.lex_state = 51},
-  [600] = {.lex_state = 51},
-  [601] = {.lex_state = 51},
-  [602] = {.lex_state = 45},
+  [591] = {.lex_state = 46},
+  [592] = {.lex_state = 52},
+  [593] = {.lex_state = 52},
+  [594] = {.lex_state = 52},
+  [595] = {.lex_state = 52},
+  [596] = {.lex_state = 52},
+  [597] = {.lex_state = 52},
+  [598] = {.lex_state = 52},
+  [599] = {.lex_state = 52},
+  [600] = {.lex_state = 52},
+  [601] = {.lex_state = 52},
+  [602] = {.lex_state = 46},
   [603] = {.lex_state = 123},
-  [604] = {.lex_state = 54},
-  [605] = {.lex_state = 54},
-  [606] = {.lex_state = 54},
-  [607] = {.lex_state = 54},
-  [608] = {.lex_state = 54},
-  [609] = {.lex_state = 54},
-  [610] = {.lex_state = 54},
-  [611] = {.lex_state = 54},
-  [612] = {.lex_state = 54},
-  [613] = {.lex_state = 54},
-  [614] = {.lex_state = 54},
-  [615] = {.lex_state = 54},
-  [616] = {.lex_state = 54},
-  [617] = {.lex_state = 54},
-  [618] = {.lex_state = 54},
-  [619] = {.lex_state = 54},
-  [620] = {.lex_state = 54},
-  [621] = {.lex_state = 54},
-  [622] = {.lex_state = 54},
-  [623] = {.lex_state = 54},
-  [624] = {.lex_state = 54},
-  [625] = {.lex_state = 54},
-  [626] = {.lex_state = 54},
-  [627] = {.lex_state = 54},
-  [628] = {.lex_state = 55},
-  [629] = {.lex_state = 55},
-  [630] = {.lex_state = 55},
-  [631] = {.lex_state = 55},
-  [632] = {.lex_state = 55},
-  [633] = {.lex_state = 55},
-  [634] = {.lex_state = 55},
-  [635] = {.lex_state = 55},
-  [636] = {.lex_state = 55},
-  [637] = {.lex_state = 55},
-  [638] = {.lex_state = 59},
-  [639] = {.lex_state = 59},
-  [640] = {.lex_state = 59},
-  [641] = {.lex_state = 55},
-  [642] = {.lex_state = 55},
-  [643] = {.lex_state = 59},
-  [644] = {.lex_state = 59},
-  [645] = {.lex_state = 59},
-  [646] = {.lex_state = 59},
-  [647] = {.lex_state = 55},
-  [648] = {.lex_state = 55},
-  [649] = {.lex_state = 55},
-  [650] = {.lex_state = 59},
-  [651] = {.lex_state = 55},
-  [652] = {.lex_state = 59},
-  [653] = {.lex_state = 59},
-  [654] = {.lex_state = 59},
-  [655] = {.lex_state = 59},
-  [656] = {.lex_state = 59},
-  [657] = {.lex_state = 55},
-  [658] = {.lex_state = 59},
-  [659] = {.lex_state = 55},
-  [660] = {.lex_state = 55},
-  [661] = {.lex_state = 59},
-  [662] = {.lex_state = 59},
-  [663] = {.lex_state = 59},
-  [664] = {.lex_state = 59},
-  [665] = {.lex_state = 55},
-  [666] = {.lex_state = 59},
-  [667] = {.lex_state = 55},
-  [668] = {.lex_state = 59},
-  [669] = {.lex_state = 59},
-  [670] = {.lex_state = 59},
-  [671] = {.lex_state = 55},
+  [604] = {.lex_state = 55},
+  [605] = {.lex_state = 55},
+  [606] = {.lex_state = 55},
+  [607] = {.lex_state = 55},
+  [608] = {.lex_state = 55},
+  [609] = {.lex_state = 55},
+  [610] = {.lex_state = 55},
+  [611] = {.lex_state = 55},
+  [612] = {.lex_state = 55},
+  [613] = {.lex_state = 55},
+  [614] = {.lex_state = 55},
+  [615] = {.lex_state = 55},
+  [616] = {.lex_state = 55},
+  [617] = {.lex_state = 55},
+  [618] = {.lex_state = 55},
+  [619] = {.lex_state = 55},
+  [620] = {.lex_state = 55},
+  [621] = {.lex_state = 55},
+  [622] = {.lex_state = 55},
+  [623] = {.lex_state = 55},
+  [624] = {.lex_state = 55},
+  [625] = {.lex_state = 55},
+  [626] = {.lex_state = 55},
+  [627] = {.lex_state = 55},
+  [628] = {.lex_state = 56},
+  [629] = {.lex_state = 56},
+  [630] = {.lex_state = 56},
+  [631] = {.lex_state = 56},
+  [632] = {.lex_state = 56},
+  [633] = {.lex_state = 56},
+  [634] = {.lex_state = 56},
+  [635] = {.lex_state = 56},
+  [636] = {.lex_state = 56},
+  [637] = {.lex_state = 56},
+  [638] = {.lex_state = 60},
+  [639] = {.lex_state = 60},
+  [640] = {.lex_state = 60},
+  [641] = {.lex_state = 56},
+  [642] = {.lex_state = 56},
+  [643] = {.lex_state = 60},
+  [644] = {.lex_state = 60},
+  [645] = {.lex_state = 60},
+  [646] = {.lex_state = 60},
+  [647] = {.lex_state = 56},
+  [648] = {.lex_state = 56},
+  [649] = {.lex_state = 56},
+  [650] = {.lex_state = 60},
+  [651] = {.lex_state = 56},
+  [652] = {.lex_state = 60},
+  [653] = {.lex_state = 60},
+  [654] = {.lex_state = 60},
+  [655] = {.lex_state = 60},
+  [656] = {.lex_state = 60},
+  [657] = {.lex_state = 56},
+  [658] = {.lex_state = 60},
+  [659] = {.lex_state = 56},
+  [660] = {.lex_state = 56},
+  [661] = {.lex_state = 60},
+  [662] = {.lex_state = 60},
+  [663] = {.lex_state = 60},
+  [664] = {.lex_state = 60},
+  [665] = {.lex_state = 56},
+  [666] = {.lex_state = 60},
+  [667] = {.lex_state = 56},
+  [668] = {.lex_state = 60},
+  [669] = {.lex_state = 60},
+  [670] = {.lex_state = 60},
+  [671] = {.lex_state = 56},
   [672] = {.lex_state = 123},
-  [673] = {.lex_state = 54},
+  [673] = {.lex_state = 55},
   [674] = {.lex_state = 123},
   [675] = {.lex_state = 123},
   [676] = {.lex_state = 123},
@@ -15147,23 +11777,23 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [679] = {.lex_state = 123},
   [680] = {.lex_state = 123},
   [681] = {.lex_state = 123},
-  [682] = {.lex_state = 54},
+  [682] = {.lex_state = 55},
   [683] = {.lex_state = 123},
-  [684] = {.lex_state = 54},
+  [684] = {.lex_state = 55},
   [685] = {.lex_state = 123},
   [686] = {.lex_state = 123},
   [687] = {.lex_state = 123},
-  [688] = {.lex_state = 54},
-  [689] = {.lex_state = 54},
-  [690] = {.lex_state = 54},
-  [691] = {.lex_state = 54},
-  [692] = {.lex_state = 54},
-  [693] = {.lex_state = 54},
-  [694] = {.lex_state = 54},
-  [695] = {.lex_state = 54},
-  [696] = {.lex_state = 54},
+  [688] = {.lex_state = 55},
+  [689] = {.lex_state = 55},
+  [690] = {.lex_state = 55},
+  [691] = {.lex_state = 55},
+  [692] = {.lex_state = 55},
+  [693] = {.lex_state = 55},
+  [694] = {.lex_state = 55},
+  [695] = {.lex_state = 55},
+  [696] = {.lex_state = 55},
   [697] = {.lex_state = 123},
-  [698] = {.lex_state = 54},
+  [698] = {.lex_state = 55},
   [699] = {.lex_state = 123},
   [700] = {.lex_state = 123},
   [701] = {.lex_state = 123},
@@ -15324,240 +11954,240 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [856] = {.lex_state = 123},
   [857] = {.lex_state = 123},
   [858] = {.lex_state = 123},
-  [859] = {.lex_state = 51},
-  [860] = {.lex_state = 51},
-  [861] = {.lex_state = 51},
-  [862] = {.lex_state = 51},
-  [863] = {.lex_state = 51},
-  [864] = {.lex_state = 51},
-  [865] = {.lex_state = 51},
-  [866] = {.lex_state = 52},
-  [867] = {.lex_state = 52},
-  [868] = {.lex_state = 52},
-  [869] = {.lex_state = 52},
-  [870] = {.lex_state = 52},
-  [871] = {.lex_state = 52},
-  [872] = {.lex_state = 52},
-  [873] = {.lex_state = 52},
-  [874] = {.lex_state = 52},
-  [875] = {.lex_state = 52},
-  [876] = {.lex_state = 54},
-  [877] = {.lex_state = 54},
-  [878] = {.lex_state = 54},
-  [879] = {.lex_state = 54},
-  [880] = {.lex_state = 54},
-  [881] = {.lex_state = 54},
-  [882] = {.lex_state = 54},
-  [883] = {.lex_state = 54},
-  [884] = {.lex_state = 54},
-  [885] = {.lex_state = 54},
-  [886] = {.lex_state = 54},
-  [887] = {.lex_state = 54},
-  [888] = {.lex_state = 54},
-  [889] = {.lex_state = 51},
-  [890] = {.lex_state = 54},
+  [859] = {.lex_state = 52},
+  [860] = {.lex_state = 52},
+  [861] = {.lex_state = 52},
+  [862] = {.lex_state = 52},
+  [863] = {.lex_state = 52},
+  [864] = {.lex_state = 52},
+  [865] = {.lex_state = 52},
+  [866] = {.lex_state = 53},
+  [867] = {.lex_state = 53},
+  [868] = {.lex_state = 53},
+  [869] = {.lex_state = 53},
+  [870] = {.lex_state = 53},
+  [871] = {.lex_state = 53},
+  [872] = {.lex_state = 53},
+  [873] = {.lex_state = 53},
+  [874] = {.lex_state = 53},
+  [875] = {.lex_state = 53},
+  [876] = {.lex_state = 55},
+  [877] = {.lex_state = 55},
+  [878] = {.lex_state = 55},
+  [879] = {.lex_state = 55},
+  [880] = {.lex_state = 55},
+  [881] = {.lex_state = 55},
+  [882] = {.lex_state = 55},
+  [883] = {.lex_state = 55},
+  [884] = {.lex_state = 55},
+  [885] = {.lex_state = 55},
+  [886] = {.lex_state = 55},
+  [887] = {.lex_state = 55},
+  [888] = {.lex_state = 55},
+  [889] = {.lex_state = 52},
+  [890] = {.lex_state = 55},
   [891] = {.lex_state = 123},
   [892] = {.lex_state = 123},
-  [893] = {.lex_state = 52},
+  [893] = {.lex_state = 53},
   [894] = {.lex_state = 123},
-  [895] = {.lex_state = 52},
-  [896] = {.lex_state = 52},
-  [897] = {.lex_state = 52},
-  [898] = {.lex_state = 52},
-  [899] = {.lex_state = 52},
-  [900] = {.lex_state = 52},
-  [901] = {.lex_state = 54},
-  [902] = {.lex_state = 52},
-  [903] = {.lex_state = 52},
-  [904] = {.lex_state = 52},
-  [905] = {.lex_state = 52},
-  [906] = {.lex_state = 52},
-  [907] = {.lex_state = 52},
-  [908] = {.lex_state = 52},
-  [909] = {.lex_state = 52},
-  [910] = {.lex_state = 54},
-  [911] = {.lex_state = 52},
-  [912] = {.lex_state = 54},
-  [913] = {.lex_state = 52},
-  [914] = {.lex_state = 53},
-  [915] = {.lex_state = 52},
-  [916] = {.lex_state = 52},
-  [917] = {.lex_state = 53},
-  [918] = {.lex_state = 52},
-  [919] = {.lex_state = 52},
-  [920] = {.lex_state = 53},
-  [921] = {.lex_state = 53},
-  [922] = {.lex_state = 51},
-  [923] = {.lex_state = 52},
-  [924] = {.lex_state = 52},
-  [925] = {.lex_state = 54},
-  [926] = {.lex_state = 51},
-  [927] = {.lex_state = 51},
+  [895] = {.lex_state = 53},
+  [896] = {.lex_state = 53},
+  [897] = {.lex_state = 53},
+  [898] = {.lex_state = 53},
+  [899] = {.lex_state = 53},
+  [900] = {.lex_state = 53},
+  [901] = {.lex_state = 55},
+  [902] = {.lex_state = 53},
+  [903] = {.lex_state = 53},
+  [904] = {.lex_state = 53},
+  [905] = {.lex_state = 53},
+  [906] = {.lex_state = 53},
+  [907] = {.lex_state = 53},
+  [908] = {.lex_state = 53},
+  [909] = {.lex_state = 53},
+  [910] = {.lex_state = 55},
+  [911] = {.lex_state = 53},
+  [912] = {.lex_state = 55},
+  [913] = {.lex_state = 53},
+  [914] = {.lex_state = 54},
+  [915] = {.lex_state = 53},
+  [916] = {.lex_state = 53},
+  [917] = {.lex_state = 54},
+  [918] = {.lex_state = 53},
+  [919] = {.lex_state = 53},
+  [920] = {.lex_state = 54},
+  [921] = {.lex_state = 54},
+  [922] = {.lex_state = 52},
+  [923] = {.lex_state = 53},
+  [924] = {.lex_state = 53},
+  [925] = {.lex_state = 55},
+  [926] = {.lex_state = 52},
+  [927] = {.lex_state = 52},
   [928] = {.lex_state = 123},
-  [929] = {.lex_state = 54},
-  [930] = {.lex_state = 54},
-  [931] = {.lex_state = 54},
-  [932] = {.lex_state = 54},
-  [933] = {.lex_state = 54},
-  [934] = {.lex_state = 54},
-  [935] = {.lex_state = 54},
-  [936] = {.lex_state = 54},
-  [937] = {.lex_state = 54},
-  [938] = {.lex_state = 54},
-  [939] = {.lex_state = 54},
-  [940] = {.lex_state = 54},
-  [941] = {.lex_state = 54},
-  [942] = {.lex_state = 54},
-  [943] = {.lex_state = 54},
-  [944] = {.lex_state = 54},
-  [945] = {.lex_state = 54},
-  [946] = {.lex_state = 54},
-  [947] = {.lex_state = 54},
-  [948] = {.lex_state = 54},
-  [949] = {.lex_state = 51},
-  [950] = {.lex_state = 54},
-  [951] = {.lex_state = 51},
-  [952] = {.lex_state = 54},
-  [953] = {.lex_state = 51},
-  [954] = {.lex_state = 51},
-  [955] = {.lex_state = 54},
-  [956] = {.lex_state = 54},
-  [957] = {.lex_state = 51},
-  [958] = {.lex_state = 54},
-  [959] = {.lex_state = 51},
-  [960] = {.lex_state = 54},
+  [929] = {.lex_state = 55},
+  [930] = {.lex_state = 55},
+  [931] = {.lex_state = 55},
+  [932] = {.lex_state = 55},
+  [933] = {.lex_state = 55},
+  [934] = {.lex_state = 55},
+  [935] = {.lex_state = 55},
+  [936] = {.lex_state = 55},
+  [937] = {.lex_state = 55},
+  [938] = {.lex_state = 55},
+  [939] = {.lex_state = 55},
+  [940] = {.lex_state = 55},
+  [941] = {.lex_state = 55},
+  [942] = {.lex_state = 55},
+  [943] = {.lex_state = 55},
+  [944] = {.lex_state = 55},
+  [945] = {.lex_state = 55},
+  [946] = {.lex_state = 55},
+  [947] = {.lex_state = 55},
+  [948] = {.lex_state = 55},
+  [949] = {.lex_state = 52},
+  [950] = {.lex_state = 55},
+  [951] = {.lex_state = 52},
+  [952] = {.lex_state = 55},
+  [953] = {.lex_state = 52},
+  [954] = {.lex_state = 52},
+  [955] = {.lex_state = 55},
+  [956] = {.lex_state = 55},
+  [957] = {.lex_state = 52},
+  [958] = {.lex_state = 55},
+  [959] = {.lex_state = 52},
+  [960] = {.lex_state = 55},
   [961] = {.lex_state = 123},
-  [962] = {.lex_state = 54},
-  [963] = {.lex_state = 54},
-  [964] = {.lex_state = 52},
-  [965] = {.lex_state = 52},
-  [966] = {.lex_state = 52},
-  [967] = {.lex_state = 52},
-  [968] = {.lex_state = 52},
-  [969] = {.lex_state = 52},
-  [970] = {.lex_state = 54},
-  [971] = {.lex_state = 54},
-  [972] = {.lex_state = 52},
-  [973] = {.lex_state = 51},
-  [974] = {.lex_state = 52},
-  [975] = {.lex_state = 54},
-  [976] = {.lex_state = 52},
-  [977] = {.lex_state = 52},
-  [978] = {.lex_state = 52},
-  [979] = {.lex_state = 52},
-  [980] = {.lex_state = 54},
-  [981] = {.lex_state = 54},
-  [982] = {.lex_state = 54},
-  [983] = {.lex_state = 54},
-  [984] = {.lex_state = 54},
-  [985] = {.lex_state = 54},
-  [986] = {.lex_state = 54},
-  [987] = {.lex_state = 54},
-  [988] = {.lex_state = 54},
-  [989] = {.lex_state = 52},
-  [990] = {.lex_state = 54},
-  [991] = {.lex_state = 54},
-  [992] = {.lex_state = 54},
-  [993] = {.lex_state = 54},
-  [994] = {.lex_state = 54},
-  [995] = {.lex_state = 54},
-  [996] = {.lex_state = 54},
-  [997] = {.lex_state = 54},
-  [998] = {.lex_state = 54},
-  [999] = {.lex_state = 54},
-  [1000] = {.lex_state = 54},
-  [1001] = {.lex_state = 54},
-  [1002] = {.lex_state = 54},
-  [1003] = {.lex_state = 54},
-  [1004] = {.lex_state = 54},
-  [1005] = {.lex_state = 54},
-  [1006] = {.lex_state = 54},
-  [1007] = {.lex_state = 54},
-  [1008] = {.lex_state = 54},
-  [1009] = {.lex_state = 54},
-  [1010] = {.lex_state = 54},
-  [1011] = {.lex_state = 54},
-  [1012] = {.lex_state = 54},
-  [1013] = {.lex_state = 54},
-  [1014] = {.lex_state = 54},
-  [1015] = {.lex_state = 54},
-  [1016] = {.lex_state = 54},
-  [1017] = {.lex_state = 54},
-  [1018] = {.lex_state = 54},
-  [1019] = {.lex_state = 54},
-  [1020] = {.lex_state = 54},
-  [1021] = {.lex_state = 54},
-  [1022] = {.lex_state = 54},
-  [1023] = {.lex_state = 54},
-  [1024] = {.lex_state = 54},
-  [1025] = {.lex_state = 54},
-  [1026] = {.lex_state = 54},
-  [1027] = {.lex_state = 54},
-  [1028] = {.lex_state = 54},
-  [1029] = {.lex_state = 54},
-  [1030] = {.lex_state = 54},
-  [1031] = {.lex_state = 54},
-  [1032] = {.lex_state = 54},
-  [1033] = {.lex_state = 54},
-  [1034] = {.lex_state = 54},
-  [1035] = {.lex_state = 54},
-  [1036] = {.lex_state = 54},
-  [1037] = {.lex_state = 54},
-  [1038] = {.lex_state = 54},
-  [1039] = {.lex_state = 54},
-  [1040] = {.lex_state = 54},
-  [1041] = {.lex_state = 54},
-  [1042] = {.lex_state = 54},
-  [1043] = {.lex_state = 54},
-  [1044] = {.lex_state = 54},
-  [1045] = {.lex_state = 54},
-  [1046] = {.lex_state = 54},
-  [1047] = {.lex_state = 54},
-  [1048] = {.lex_state = 54},
-  [1049] = {.lex_state = 54},
-  [1050] = {.lex_state = 54},
-  [1051] = {.lex_state = 54},
-  [1052] = {.lex_state = 54},
-  [1053] = {.lex_state = 54},
-  [1054] = {.lex_state = 54},
-  [1055] = {.lex_state = 54},
-  [1056] = {.lex_state = 54},
-  [1057] = {.lex_state = 54},
-  [1058] = {.lex_state = 54},
-  [1059] = {.lex_state = 54},
-  [1060] = {.lex_state = 54},
-  [1061] = {.lex_state = 54},
-  [1062] = {.lex_state = 54},
-  [1063] = {.lex_state = 54},
-  [1064] = {.lex_state = 54},
-  [1065] = {.lex_state = 54},
-  [1066] = {.lex_state = 54},
-  [1067] = {.lex_state = 54},
-  [1068] = {.lex_state = 54},
-  [1069] = {.lex_state = 54},
-  [1070] = {.lex_state = 54},
-  [1071] = {.lex_state = 54},
-  [1072] = {.lex_state = 54},
-  [1073] = {.lex_state = 54},
-  [1074] = {.lex_state = 54},
-  [1075] = {.lex_state = 54},
-  [1076] = {.lex_state = 54},
-  [1077] = {.lex_state = 54},
-  [1078] = {.lex_state = 54},
-  [1079] = {.lex_state = 54},
-  [1080] = {.lex_state = 54},
-  [1081] = {.lex_state = 54},
-  [1082] = {.lex_state = 54},
-  [1083] = {.lex_state = 54},
-  [1084] = {.lex_state = 54},
-  [1085] = {.lex_state = 54},
-  [1086] = {.lex_state = 54},
-  [1087] = {.lex_state = 51},
-  [1088] = {.lex_state = 51},
-  [1089] = {.lex_state = 51},
-  [1090] = {.lex_state = 54},
-  [1091] = {.lex_state = 54},
-  [1092] = {.lex_state = 51},
+  [962] = {.lex_state = 55},
+  [963] = {.lex_state = 55},
+  [964] = {.lex_state = 53},
+  [965] = {.lex_state = 53},
+  [966] = {.lex_state = 53},
+  [967] = {.lex_state = 53},
+  [968] = {.lex_state = 53},
+  [969] = {.lex_state = 53},
+  [970] = {.lex_state = 55},
+  [971] = {.lex_state = 55},
+  [972] = {.lex_state = 53},
+  [973] = {.lex_state = 52},
+  [974] = {.lex_state = 53},
+  [975] = {.lex_state = 55},
+  [976] = {.lex_state = 53},
+  [977] = {.lex_state = 53},
+  [978] = {.lex_state = 53},
+  [979] = {.lex_state = 53},
+  [980] = {.lex_state = 55},
+  [981] = {.lex_state = 55},
+  [982] = {.lex_state = 55},
+  [983] = {.lex_state = 55},
+  [984] = {.lex_state = 55},
+  [985] = {.lex_state = 55},
+  [986] = {.lex_state = 55},
+  [987] = {.lex_state = 55},
+  [988] = {.lex_state = 55},
+  [989] = {.lex_state = 53},
+  [990] = {.lex_state = 55},
+  [991] = {.lex_state = 55},
+  [992] = {.lex_state = 55},
+  [993] = {.lex_state = 55},
+  [994] = {.lex_state = 55},
+  [995] = {.lex_state = 55},
+  [996] = {.lex_state = 55},
+  [997] = {.lex_state = 55},
+  [998] = {.lex_state = 55},
+  [999] = {.lex_state = 55},
+  [1000] = {.lex_state = 55},
+  [1001] = {.lex_state = 55},
+  [1002] = {.lex_state = 55},
+  [1003] = {.lex_state = 55},
+  [1004] = {.lex_state = 55},
+  [1005] = {.lex_state = 55},
+  [1006] = {.lex_state = 55},
+  [1007] = {.lex_state = 55},
+  [1008] = {.lex_state = 55},
+  [1009] = {.lex_state = 55},
+  [1010] = {.lex_state = 55},
+  [1011] = {.lex_state = 55},
+  [1012] = {.lex_state = 55},
+  [1013] = {.lex_state = 55},
+  [1014] = {.lex_state = 55},
+  [1015] = {.lex_state = 55},
+  [1016] = {.lex_state = 55},
+  [1017] = {.lex_state = 55},
+  [1018] = {.lex_state = 55},
+  [1019] = {.lex_state = 55},
+  [1020] = {.lex_state = 55},
+  [1021] = {.lex_state = 55},
+  [1022] = {.lex_state = 55},
+  [1023] = {.lex_state = 55},
+  [1024] = {.lex_state = 55},
+  [1025] = {.lex_state = 55},
+  [1026] = {.lex_state = 55},
+  [1027] = {.lex_state = 55},
+  [1028] = {.lex_state = 55},
+  [1029] = {.lex_state = 55},
+  [1030] = {.lex_state = 55},
+  [1031] = {.lex_state = 55},
+  [1032] = {.lex_state = 55},
+  [1033] = {.lex_state = 55},
+  [1034] = {.lex_state = 55},
+  [1035] = {.lex_state = 55},
+  [1036] = {.lex_state = 55},
+  [1037] = {.lex_state = 55},
+  [1038] = {.lex_state = 55},
+  [1039] = {.lex_state = 55},
+  [1040] = {.lex_state = 55},
+  [1041] = {.lex_state = 55},
+  [1042] = {.lex_state = 55},
+  [1043] = {.lex_state = 55},
+  [1044] = {.lex_state = 55},
+  [1045] = {.lex_state = 55},
+  [1046] = {.lex_state = 55},
+  [1047] = {.lex_state = 55},
+  [1048] = {.lex_state = 55},
+  [1049] = {.lex_state = 55},
+  [1050] = {.lex_state = 55},
+  [1051] = {.lex_state = 55},
+  [1052] = {.lex_state = 55},
+  [1053] = {.lex_state = 55},
+  [1054] = {.lex_state = 55},
+  [1055] = {.lex_state = 55},
+  [1056] = {.lex_state = 55},
+  [1057] = {.lex_state = 55},
+  [1058] = {.lex_state = 55},
+  [1059] = {.lex_state = 55},
+  [1060] = {.lex_state = 55},
+  [1061] = {.lex_state = 55},
+  [1062] = {.lex_state = 55},
+  [1063] = {.lex_state = 55},
+  [1064] = {.lex_state = 55},
+  [1065] = {.lex_state = 55},
+  [1066] = {.lex_state = 55},
+  [1067] = {.lex_state = 55},
+  [1068] = {.lex_state = 55},
+  [1069] = {.lex_state = 55},
+  [1070] = {.lex_state = 55},
+  [1071] = {.lex_state = 55},
+  [1072] = {.lex_state = 55},
+  [1073] = {.lex_state = 55},
+  [1074] = {.lex_state = 55},
+  [1075] = {.lex_state = 55},
+  [1076] = {.lex_state = 55},
+  [1077] = {.lex_state = 55},
+  [1078] = {.lex_state = 55},
+  [1079] = {.lex_state = 55},
+  [1080] = {.lex_state = 55},
+  [1081] = {.lex_state = 55},
+  [1082] = {.lex_state = 55},
+  [1083] = {.lex_state = 55},
+  [1084] = {.lex_state = 55},
+  [1085] = {.lex_state = 55},
+  [1086] = {.lex_state = 55},
+  [1087] = {.lex_state = 52},
+  [1088] = {.lex_state = 52},
+  [1089] = {.lex_state = 52},
+  [1090] = {.lex_state = 55},
+  [1091] = {.lex_state = 55},
+  [1092] = {.lex_state = 52},
   [1093] = {.lex_state = 123},
   [1094] = {.lex_state = 123},
   [1095] = {.lex_state = 123},
@@ -15581,262 +12211,262 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [1113] = {.lex_state = 123},
   [1114] = {.lex_state = 123},
   [1115] = {.lex_state = 123},
-  [1116] = {.lex_state = 54},
-  [1117] = {.lex_state = 54},
-  [1118] = {.lex_state = 54},
-  [1119] = {.lex_state = 54},
-  [1120] = {.lex_state = 54},
-  [1121] = {.lex_state = 54},
-  [1122] = {.lex_state = 52},
-  [1123] = {.lex_state = 52},
-  [1124] = {.lex_state = 52},
-  [1125] = {.lex_state = 52},
-  [1126] = {.lex_state = 52},
-  [1127] = {.lex_state = 52},
-  [1128] = {.lex_state = 52},
-  [1129] = {.lex_state = 52},
-  [1130] = {.lex_state = 52},
-  [1131] = {.lex_state = 52},
-  [1132] = {.lex_state = 52},
-  [1133] = {.lex_state = 52},
-  [1134] = {.lex_state = 52},
-  [1135] = {.lex_state = 54},
-  [1136] = {.lex_state = 54},
-  [1137] = {.lex_state = 54},
-  [1138] = {.lex_state = 54},
-  [1139] = {.lex_state = 54},
-  [1140] = {.lex_state = 54},
-  [1141] = {.lex_state = 54},
-  [1142] = {.lex_state = 54},
-  [1143] = {.lex_state = 54},
-  [1144] = {.lex_state = 54},
-  [1145] = {.lex_state = 54},
-  [1146] = {.lex_state = 54},
-  [1147] = {.lex_state = 54},
-  [1148] = {.lex_state = 54},
-  [1149] = {.lex_state = 54},
-  [1150] = {.lex_state = 54},
-  [1151] = {.lex_state = 54},
-  [1152] = {.lex_state = 54},
-  [1153] = {.lex_state = 54},
-  [1154] = {.lex_state = 54},
-  [1155] = {.lex_state = 54},
-  [1156] = {.lex_state = 54},
-  [1157] = {.lex_state = 55},
-  [1158] = {.lex_state = 54},
-  [1159] = {.lex_state = 54},
-  [1160] = {.lex_state = 55},
-  [1161] = {.lex_state = 54},
-  [1162] = {.lex_state = 55},
-  [1163] = {.lex_state = 54},
-  [1164] = {.lex_state = 55},
-  [1165] = {.lex_state = 54},
-  [1166] = {.lex_state = 54},
-  [1167] = {.lex_state = 54},
-  [1168] = {.lex_state = 54},
-  [1169] = {.lex_state = 54},
-  [1170] = {.lex_state = 54},
-  [1171] = {.lex_state = 54},
-  [1172] = {.lex_state = 54},
-  [1173] = {.lex_state = 54},
-  [1174] = {.lex_state = 54},
-  [1175] = {.lex_state = 54},
-  [1176] = {.lex_state = 54},
-  [1177] = {.lex_state = 54},
-  [1178] = {.lex_state = 54},
-  [1179] = {.lex_state = 54},
-  [1180] = {.lex_state = 54},
-  [1181] = {.lex_state = 54},
-  [1182] = {.lex_state = 54},
-  [1183] = {.lex_state = 54},
-  [1184] = {.lex_state = 54},
-  [1185] = {.lex_state = 54},
-  [1186] = {.lex_state = 54},
-  [1187] = {.lex_state = 54},
-  [1188] = {.lex_state = 54},
-  [1189] = {.lex_state = 54},
-  [1190] = {.lex_state = 54},
-  [1191] = {.lex_state = 54},
-  [1192] = {.lex_state = 54},
-  [1193] = {.lex_state = 54},
-  [1194] = {.lex_state = 54},
-  [1195] = {.lex_state = 54},
-  [1196] = {.lex_state = 54},
-  [1197] = {.lex_state = 54},
-  [1198] = {.lex_state = 54},
-  [1199] = {.lex_state = 54},
-  [1200] = {.lex_state = 54},
-  [1201] = {.lex_state = 54},
-  [1202] = {.lex_state = 54},
-  [1203] = {.lex_state = 54},
-  [1204] = {.lex_state = 54},
-  [1205] = {.lex_state = 54},
-  [1206] = {.lex_state = 54},
-  [1207] = {.lex_state = 54},
-  [1208] = {.lex_state = 54},
-  [1209] = {.lex_state = 54},
-  [1210] = {.lex_state = 54},
-  [1211] = {.lex_state = 54},
-  [1212] = {.lex_state = 54},
-  [1213] = {.lex_state = 54},
-  [1214] = {.lex_state = 54},
-  [1215] = {.lex_state = 54},
-  [1216] = {.lex_state = 54},
-  [1217] = {.lex_state = 54},
-  [1218] = {.lex_state = 54},
-  [1219] = {.lex_state = 54},
-  [1220] = {.lex_state = 54},
-  [1221] = {.lex_state = 54},
-  [1222] = {.lex_state = 54},
-  [1223] = {.lex_state = 54},
-  [1224] = {.lex_state = 54},
-  [1225] = {.lex_state = 54},
-  [1226] = {.lex_state = 54},
-  [1227] = {.lex_state = 54},
-  [1228] = {.lex_state = 54},
-  [1229] = {.lex_state = 54},
-  [1230] = {.lex_state = 54},
-  [1231] = {.lex_state = 54},
-  [1232] = {.lex_state = 54},
-  [1233] = {.lex_state = 54},
-  [1234] = {.lex_state = 54},
-  [1235] = {.lex_state = 54},
-  [1236] = {.lex_state = 54},
-  [1237] = {.lex_state = 54},
-  [1238] = {.lex_state = 54},
-  [1239] = {.lex_state = 54},
-  [1240] = {.lex_state = 54},
-  [1241] = {.lex_state = 54},
-  [1242] = {.lex_state = 54},
-  [1243] = {.lex_state = 54},
-  [1244] = {.lex_state = 54},
-  [1245] = {.lex_state = 54},
-  [1246] = {.lex_state = 54},
-  [1247] = {.lex_state = 54},
-  [1248] = {.lex_state = 54},
-  [1249] = {.lex_state = 54},
-  [1250] = {.lex_state = 54},
-  [1251] = {.lex_state = 54},
-  [1252] = {.lex_state = 54},
-  [1253] = {.lex_state = 54},
-  [1254] = {.lex_state = 54},
-  [1255] = {.lex_state = 54},
-  [1256] = {.lex_state = 54},
-  [1257] = {.lex_state = 54},
-  [1258] = {.lex_state = 54},
-  [1259] = {.lex_state = 54},
-  [1260] = {.lex_state = 54},
-  [1261] = {.lex_state = 54},
-  [1262] = {.lex_state = 54},
-  [1263] = {.lex_state = 54},
-  [1264] = {.lex_state = 54},
-  [1265] = {.lex_state = 54},
-  [1266] = {.lex_state = 54},
-  [1267] = {.lex_state = 54},
-  [1268] = {.lex_state = 54},
-  [1269] = {.lex_state = 54},
-  [1270] = {.lex_state = 54},
-  [1271] = {.lex_state = 54},
-  [1272] = {.lex_state = 54},
-  [1273] = {.lex_state = 54},
-  [1274] = {.lex_state = 54},
-  [1275] = {.lex_state = 54},
-  [1276] = {.lex_state = 54},
-  [1277] = {.lex_state = 54},
-  [1278] = {.lex_state = 54},
-  [1279] = {.lex_state = 54},
-  [1280] = {.lex_state = 54},
-  [1281] = {.lex_state = 54},
-  [1282] = {.lex_state = 54},
-  [1283] = {.lex_state = 54},
-  [1284] = {.lex_state = 54},
-  [1285] = {.lex_state = 54},
-  [1286] = {.lex_state = 54},
-  [1287] = {.lex_state = 55},
-  [1288] = {.lex_state = 54},
-  [1289] = {.lex_state = 50},
-  [1290] = {.lex_state = 54},
-  [1291] = {.lex_state = 54},
-  [1292] = {.lex_state = 54},
-  [1293] = {.lex_state = 54},
-  [1294] = {.lex_state = 54},
-  [1295] = {.lex_state = 55},
-  [1296] = {.lex_state = 54},
+  [1116] = {.lex_state = 55},
+  [1117] = {.lex_state = 55},
+  [1118] = {.lex_state = 55},
+  [1119] = {.lex_state = 55},
+  [1120] = {.lex_state = 55},
+  [1121] = {.lex_state = 55},
+  [1122] = {.lex_state = 53},
+  [1123] = {.lex_state = 53},
+  [1124] = {.lex_state = 53},
+  [1125] = {.lex_state = 53},
+  [1126] = {.lex_state = 53},
+  [1127] = {.lex_state = 53},
+  [1128] = {.lex_state = 53},
+  [1129] = {.lex_state = 53},
+  [1130] = {.lex_state = 53},
+  [1131] = {.lex_state = 53},
+  [1132] = {.lex_state = 53},
+  [1133] = {.lex_state = 53},
+  [1134] = {.lex_state = 53},
+  [1135] = {.lex_state = 55},
+  [1136] = {.lex_state = 55},
+  [1137] = {.lex_state = 55},
+  [1138] = {.lex_state = 55},
+  [1139] = {.lex_state = 55},
+  [1140] = {.lex_state = 55},
+  [1141] = {.lex_state = 55},
+  [1142] = {.lex_state = 55},
+  [1143] = {.lex_state = 55},
+  [1144] = {.lex_state = 55},
+  [1145] = {.lex_state = 55},
+  [1146] = {.lex_state = 55},
+  [1147] = {.lex_state = 55},
+  [1148] = {.lex_state = 55},
+  [1149] = {.lex_state = 55},
+  [1150] = {.lex_state = 55},
+  [1151] = {.lex_state = 55},
+  [1152] = {.lex_state = 55},
+  [1153] = {.lex_state = 55},
+  [1154] = {.lex_state = 55},
+  [1155] = {.lex_state = 55},
+  [1156] = {.lex_state = 55},
+  [1157] = {.lex_state = 56},
+  [1158] = {.lex_state = 55},
+  [1159] = {.lex_state = 55},
+  [1160] = {.lex_state = 56},
+  [1161] = {.lex_state = 55},
+  [1162] = {.lex_state = 56},
+  [1163] = {.lex_state = 55},
+  [1164] = {.lex_state = 56},
+  [1165] = {.lex_state = 55},
+  [1166] = {.lex_state = 55},
+  [1167] = {.lex_state = 55},
+  [1168] = {.lex_state = 55},
+  [1169] = {.lex_state = 55},
+  [1170] = {.lex_state = 55},
+  [1171] = {.lex_state = 55},
+  [1172] = {.lex_state = 55},
+  [1173] = {.lex_state = 55},
+  [1174] = {.lex_state = 55},
+  [1175] = {.lex_state = 55},
+  [1176] = {.lex_state = 55},
+  [1177] = {.lex_state = 55},
+  [1178] = {.lex_state = 55},
+  [1179] = {.lex_state = 55},
+  [1180] = {.lex_state = 55},
+  [1181] = {.lex_state = 55},
+  [1182] = {.lex_state = 55},
+  [1183] = {.lex_state = 55},
+  [1184] = {.lex_state = 55},
+  [1185] = {.lex_state = 55},
+  [1186] = {.lex_state = 55},
+  [1187] = {.lex_state = 55},
+  [1188] = {.lex_state = 55},
+  [1189] = {.lex_state = 55},
+  [1190] = {.lex_state = 55},
+  [1191] = {.lex_state = 55},
+  [1192] = {.lex_state = 55},
+  [1193] = {.lex_state = 55},
+  [1194] = {.lex_state = 55},
+  [1195] = {.lex_state = 55},
+  [1196] = {.lex_state = 55},
+  [1197] = {.lex_state = 55},
+  [1198] = {.lex_state = 55},
+  [1199] = {.lex_state = 55},
+  [1200] = {.lex_state = 55},
+  [1201] = {.lex_state = 55},
+  [1202] = {.lex_state = 55},
+  [1203] = {.lex_state = 55},
+  [1204] = {.lex_state = 55},
+  [1205] = {.lex_state = 55},
+  [1206] = {.lex_state = 55},
+  [1207] = {.lex_state = 55},
+  [1208] = {.lex_state = 55},
+  [1209] = {.lex_state = 55},
+  [1210] = {.lex_state = 55},
+  [1211] = {.lex_state = 55},
+  [1212] = {.lex_state = 55},
+  [1213] = {.lex_state = 55},
+  [1214] = {.lex_state = 55},
+  [1215] = {.lex_state = 55},
+  [1216] = {.lex_state = 55},
+  [1217] = {.lex_state = 55},
+  [1218] = {.lex_state = 55},
+  [1219] = {.lex_state = 55},
+  [1220] = {.lex_state = 55},
+  [1221] = {.lex_state = 55},
+  [1222] = {.lex_state = 55},
+  [1223] = {.lex_state = 55},
+  [1224] = {.lex_state = 55},
+  [1225] = {.lex_state = 55},
+  [1226] = {.lex_state = 55},
+  [1227] = {.lex_state = 55},
+  [1228] = {.lex_state = 55},
+  [1229] = {.lex_state = 55},
+  [1230] = {.lex_state = 55},
+  [1231] = {.lex_state = 55},
+  [1232] = {.lex_state = 55},
+  [1233] = {.lex_state = 55},
+  [1234] = {.lex_state = 55},
+  [1235] = {.lex_state = 55},
+  [1236] = {.lex_state = 55},
+  [1237] = {.lex_state = 55},
+  [1238] = {.lex_state = 55},
+  [1239] = {.lex_state = 55},
+  [1240] = {.lex_state = 55},
+  [1241] = {.lex_state = 55},
+  [1242] = {.lex_state = 55},
+  [1243] = {.lex_state = 55},
+  [1244] = {.lex_state = 55},
+  [1245] = {.lex_state = 55},
+  [1246] = {.lex_state = 55},
+  [1247] = {.lex_state = 55},
+  [1248] = {.lex_state = 55},
+  [1249] = {.lex_state = 55},
+  [1250] = {.lex_state = 55},
+  [1251] = {.lex_state = 55},
+  [1252] = {.lex_state = 55},
+  [1253] = {.lex_state = 55},
+  [1254] = {.lex_state = 55},
+  [1255] = {.lex_state = 55},
+  [1256] = {.lex_state = 55},
+  [1257] = {.lex_state = 55},
+  [1258] = {.lex_state = 55},
+  [1259] = {.lex_state = 55},
+  [1260] = {.lex_state = 55},
+  [1261] = {.lex_state = 55},
+  [1262] = {.lex_state = 55},
+  [1263] = {.lex_state = 55},
+  [1264] = {.lex_state = 55},
+  [1265] = {.lex_state = 55},
+  [1266] = {.lex_state = 55},
+  [1267] = {.lex_state = 55},
+  [1268] = {.lex_state = 55},
+  [1269] = {.lex_state = 55},
+  [1270] = {.lex_state = 55},
+  [1271] = {.lex_state = 55},
+  [1272] = {.lex_state = 55},
+  [1273] = {.lex_state = 55},
+  [1274] = {.lex_state = 55},
+  [1275] = {.lex_state = 55},
+  [1276] = {.lex_state = 55},
+  [1277] = {.lex_state = 55},
+  [1278] = {.lex_state = 55},
+  [1279] = {.lex_state = 55},
+  [1280] = {.lex_state = 55},
+  [1281] = {.lex_state = 55},
+  [1282] = {.lex_state = 55},
+  [1283] = {.lex_state = 55},
+  [1284] = {.lex_state = 55},
+  [1285] = {.lex_state = 55},
+  [1286] = {.lex_state = 55},
+  [1287] = {.lex_state = 56},
+  [1288] = {.lex_state = 55},
+  [1289] = {.lex_state = 51},
+  [1290] = {.lex_state = 55},
+  [1291] = {.lex_state = 55},
+  [1292] = {.lex_state = 55},
+  [1293] = {.lex_state = 55},
+  [1294] = {.lex_state = 55},
+  [1295] = {.lex_state = 56},
+  [1296] = {.lex_state = 55},
   [1297] = {.lex_state = 23},
-  [1298] = {.lex_state = 54},
-  [1299] = {.lex_state = 54},
-  [1300] = {.lex_state = 54},
-  [1301] = {.lex_state = 54},
-  [1302] = {.lex_state = 54},
-  [1303] = {.lex_state = 54},
-  [1304] = {.lex_state = 50},
-  [1305] = {.lex_state = 54},
-  [1306] = {.lex_state = 55},
-  [1307] = {.lex_state = 54},
-  [1308] = {.lex_state = 55},
-  [1309] = {.lex_state = 54},
-  [1310] = {.lex_state = 50},
-  [1311] = {.lex_state = 55},
-  [1312] = {.lex_state = 50},
-  [1313] = {.lex_state = 50},
-  [1314] = {.lex_state = 50},
-  [1315] = {.lex_state = 50},
-  [1316] = {.lex_state = 50},
-  [1317] = {.lex_state = 55},
-  [1318] = {.lex_state = 50},
-  [1319] = {.lex_state = 50},
-  [1320] = {.lex_state = 54},
-  [1321] = {.lex_state = 50},
-  [1322] = {.lex_state = 55},
-  [1323] = {.lex_state = 50},
-  [1324] = {.lex_state = 50},
-  [1325] = {.lex_state = 50},
-  [1326] = {.lex_state = 50},
-  [1327] = {.lex_state = 50},
-  [1328] = {.lex_state = 50},
-  [1329] = {.lex_state = 50},
-  [1330] = {.lex_state = 50},
-  [1331] = {.lex_state = 50},
-  [1332] = {.lex_state = 50},
-  [1333] = {.lex_state = 50},
-  [1334] = {.lex_state = 50},
-  [1335] = {.lex_state = 50},
-  [1336] = {.lex_state = 54},
-  [1337] = {.lex_state = 54},
-  [1338] = {.lex_state = 50},
-  [1339] = {.lex_state = 55},
-  [1340] = {.lex_state = 50},
-  [1341] = {.lex_state = 50},
-  [1342] = {.lex_state = 50},
-  [1343] = {.lex_state = 50},
-  [1344] = {.lex_state = 55},
-  [1345] = {.lex_state = 55},
-  [1346] = {.lex_state = 55},
-  [1347] = {.lex_state = 55},
-  [1348] = {.lex_state = 54},
-  [1349] = {.lex_state = 50},
-  [1350] = {.lex_state = 55},
-  [1351] = {.lex_state = 55},
-  [1352] = {.lex_state = 55},
-  [1353] = {.lex_state = 55},
-  [1354] = {.lex_state = 55},
-  [1355] = {.lex_state = 55},
-  [1356] = {.lex_state = 54},
-  [1357] = {.lex_state = 55},
-  [1358] = {.lex_state = 50},
-  [1359] = {.lex_state = 50},
-  [1360] = {.lex_state = 50},
-  [1361] = {.lex_state = 50},
-  [1362] = {.lex_state = 50},
-  [1363] = {.lex_state = 54},
-  [1364] = {.lex_state = 50},
-  [1365] = {.lex_state = 55},
-  [1366] = {.lex_state = 50},
-  [1367] = {.lex_state = 50},
-  [1368] = {.lex_state = 50},
-  [1369] = {.lex_state = 50},
-  [1370] = {.lex_state = 50},
-  [1371] = {.lex_state = 50},
+  [1298] = {.lex_state = 55},
+  [1299] = {.lex_state = 55},
+  [1300] = {.lex_state = 55},
+  [1301] = {.lex_state = 55},
+  [1302] = {.lex_state = 55},
+  [1303] = {.lex_state = 55},
+  [1304] = {.lex_state = 51},
+  [1305] = {.lex_state = 55},
+  [1306] = {.lex_state = 56},
+  [1307] = {.lex_state = 55},
+  [1308] = {.lex_state = 56},
+  [1309] = {.lex_state = 55},
+  [1310] = {.lex_state = 51},
+  [1311] = {.lex_state = 56},
+  [1312] = {.lex_state = 51},
+  [1313] = {.lex_state = 51},
+  [1314] = {.lex_state = 51},
+  [1315] = {.lex_state = 51},
+  [1316] = {.lex_state = 51},
+  [1317] = {.lex_state = 56},
+  [1318] = {.lex_state = 51},
+  [1319] = {.lex_state = 51},
+  [1320] = {.lex_state = 55},
+  [1321] = {.lex_state = 51},
+  [1322] = {.lex_state = 56},
+  [1323] = {.lex_state = 51},
+  [1324] = {.lex_state = 51},
+  [1325] = {.lex_state = 51},
+  [1326] = {.lex_state = 51},
+  [1327] = {.lex_state = 51},
+  [1328] = {.lex_state = 51},
+  [1329] = {.lex_state = 51},
+  [1330] = {.lex_state = 51},
+  [1331] = {.lex_state = 51},
+  [1332] = {.lex_state = 51},
+  [1333] = {.lex_state = 51},
+  [1334] = {.lex_state = 51},
+  [1335] = {.lex_state = 51},
+  [1336] = {.lex_state = 55},
+  [1337] = {.lex_state = 55},
+  [1338] = {.lex_state = 51},
+  [1339] = {.lex_state = 56},
+  [1340] = {.lex_state = 51},
+  [1341] = {.lex_state = 51},
+  [1342] = {.lex_state = 51},
+  [1343] = {.lex_state = 51},
+  [1344] = {.lex_state = 56},
+  [1345] = {.lex_state = 56},
+  [1346] = {.lex_state = 56},
+  [1347] = {.lex_state = 56},
+  [1348] = {.lex_state = 55},
+  [1349] = {.lex_state = 51},
+  [1350] = {.lex_state = 56},
+  [1351] = {.lex_state = 56},
+  [1352] = {.lex_state = 56},
+  [1353] = {.lex_state = 56},
+  [1354] = {.lex_state = 56},
+  [1355] = {.lex_state = 56},
+  [1356] = {.lex_state = 55},
+  [1357] = {.lex_state = 56},
+  [1358] = {.lex_state = 51},
+  [1359] = {.lex_state = 51},
+  [1360] = {.lex_state = 51},
+  [1361] = {.lex_state = 51},
+  [1362] = {.lex_state = 51},
+  [1363] = {.lex_state = 55},
+  [1364] = {.lex_state = 51},
+  [1365] = {.lex_state = 56},
+  [1366] = {.lex_state = 51},
+  [1367] = {.lex_state = 51},
+  [1368] = {.lex_state = 51},
+  [1369] = {.lex_state = 51},
+  [1370] = {.lex_state = 51},
+  [1371] = {.lex_state = 51},
   [1372] = {.lex_state = 23},
   [1373] = {.lex_state = 23},
   [1374] = {.lex_state = 23},
@@ -15844,30 +12474,30 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [1376] = {.lex_state = 23},
   [1377] = {.lex_state = 23},
   [1378] = {.lex_state = 23},
-  [1379] = {.lex_state = 54},
-  [1380] = {.lex_state = 54},
+  [1379] = {.lex_state = 55},
+  [1380] = {.lex_state = 55},
   [1381] = {.lex_state = 23},
-  [1382] = {.lex_state = 54},
+  [1382] = {.lex_state = 55},
   [1383] = {.lex_state = 23},
   [1384] = {.lex_state = 23},
   [1385] = {.lex_state = 23},
-  [1386] = {.lex_state = 55},
+  [1386] = {.lex_state = 56},
   [1387] = {.lex_state = 23},
   [1388] = {.lex_state = 23},
   [1389] = {.lex_state = 23},
-  [1390] = {.lex_state = 54},
-  [1391] = {.lex_state = 54},
-  [1392] = {.lex_state = 54},
+  [1390] = {.lex_state = 55},
+  [1391] = {.lex_state = 55},
+  [1392] = {.lex_state = 55},
   [1393] = {.lex_state = 23},
   [1394] = {.lex_state = 23},
-  [1395] = {.lex_state = 55},
+  [1395] = {.lex_state = 56},
   [1396] = {.lex_state = 23},
   [1397] = {.lex_state = 23},
-  [1398] = {.lex_state = 54},
-  [1399] = {.lex_state = 54},
+  [1398] = {.lex_state = 55},
+  [1399] = {.lex_state = 55},
   [1400] = {.lex_state = 23},
   [1401] = {.lex_state = 23},
-  [1402] = {.lex_state = 54},
+  [1402] = {.lex_state = 55},
   [1403] = {.lex_state = 23},
   [1404] = {.lex_state = 23},
   [1405] = {.lex_state = 23},
@@ -15880,230 +12510,230 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [1412] = {.lex_state = 23},
   [1413] = {.lex_state = 23},
   [1414] = {.lex_state = 23},
-  [1415] = {.lex_state = 54},
+  [1415] = {.lex_state = 55},
   [1416] = {.lex_state = 23},
-  [1417] = {.lex_state = 54},
-  [1418] = {.lex_state = 54},
-  [1419] = {.lex_state = 54},
-  [1420] = {.lex_state = 54},
-  [1421] = {.lex_state = 54},
-  [1422] = {.lex_state = 54},
-  [1423] = {.lex_state = 54},
-  [1424] = {.lex_state = 54},
-  [1425] = {.lex_state = 54},
-  [1426] = {.lex_state = 54},
-  [1427] = {.lex_state = 54},
-  [1428] = {.lex_state = 54},
-  [1429] = {.lex_state = 54},
-  [1430] = {.lex_state = 54},
-  [1431] = {.lex_state = 54},
-  [1432] = {.lex_state = 54},
-  [1433] = {.lex_state = 54},
-  [1434] = {.lex_state = 54},
-  [1435] = {.lex_state = 54},
-  [1436] = {.lex_state = 54},
-  [1437] = {.lex_state = 54},
-  [1438] = {.lex_state = 54},
-  [1439] = {.lex_state = 54},
-  [1440] = {.lex_state = 54},
-  [1441] = {.lex_state = 54},
-  [1442] = {.lex_state = 54},
-  [1443] = {.lex_state = 54},
-  [1444] = {.lex_state = 54},
-  [1445] = {.lex_state = 54},
-  [1446] = {.lex_state = 54},
-  [1447] = {.lex_state = 54},
-  [1448] = {.lex_state = 54},
-  [1449] = {.lex_state = 54},
-  [1450] = {.lex_state = 54},
-  [1451] = {.lex_state = 54},
-  [1452] = {.lex_state = 54},
-  [1453] = {.lex_state = 54},
-  [1454] = {.lex_state = 54},
-  [1455] = {.lex_state = 54},
-  [1456] = {.lex_state = 54},
-  [1457] = {.lex_state = 54},
-  [1458] = {.lex_state = 54},
-  [1459] = {.lex_state = 54},
-  [1460] = {.lex_state = 54},
-  [1461] = {.lex_state = 54},
-  [1462] = {.lex_state = 54},
-  [1463] = {.lex_state = 54},
-  [1464] = {.lex_state = 54},
-  [1465] = {.lex_state = 54},
-  [1466] = {.lex_state = 54},
-  [1467] = {.lex_state = 54},
-  [1468] = {.lex_state = 54},
-  [1469] = {.lex_state = 54},
-  [1470] = {.lex_state = 52},
-  [1471] = {.lex_state = 54},
-  [1472] = {.lex_state = 54},
-  [1473] = {.lex_state = 54},
-  [1474] = {.lex_state = 54},
-  [1475] = {.lex_state = 54},
-  [1476] = {.lex_state = 54},
-  [1477] = {.lex_state = 54},
-  [1478] = {.lex_state = 54},
-  [1479] = {.lex_state = 54},
-  [1480] = {.lex_state = 52},
-  [1481] = {.lex_state = 54},
-  [1482] = {.lex_state = 52},
-  [1483] = {.lex_state = 52},
-  [1484] = {.lex_state = 54},
-  [1485] = {.lex_state = 54},
-  [1486] = {.lex_state = 54},
-  [1487] = {.lex_state = 54},
-  [1488] = {.lex_state = 54},
-  [1489] = {.lex_state = 54},
-  [1490] = {.lex_state = 54},
-  [1491] = {.lex_state = 54},
-  [1492] = {.lex_state = 54},
-  [1493] = {.lex_state = 54},
-  [1494] = {.lex_state = 54},
-  [1495] = {.lex_state = 58},
-  [1496] = {.lex_state = 54},
-  [1497] = {.lex_state = 54},
-  [1498] = {.lex_state = 54},
-  [1499] = {.lex_state = 54},
-  [1500] = {.lex_state = 58},
-  [1501] = {.lex_state = 54},
-  [1502] = {.lex_state = 54},
-  [1503] = {.lex_state = 54},
-  [1504] = {.lex_state = 54},
-  [1505] = {.lex_state = 54},
-  [1506] = {.lex_state = 54},
-  [1507] = {.lex_state = 54},
-  [1508] = {.lex_state = 54},
-  [1509] = {.lex_state = 54},
-  [1510] = {.lex_state = 54},
-  [1511] = {.lex_state = 54},
-  [1512] = {.lex_state = 54},
-  [1513] = {.lex_state = 54},
-  [1514] = {.lex_state = 54},
-  [1515] = {.lex_state = 54},
-  [1516] = {.lex_state = 54},
-  [1517] = {.lex_state = 54},
-  [1518] = {.lex_state = 54},
-  [1519] = {.lex_state = 54},
-  [1520] = {.lex_state = 54},
-  [1521] = {.lex_state = 54},
-  [1522] = {.lex_state = 54},
-  [1523] = {.lex_state = 54},
-  [1524] = {.lex_state = 54},
-  [1525] = {.lex_state = 52},
-  [1526] = {.lex_state = 52},
-  [1527] = {.lex_state = 54},
-  [1528] = {.lex_state = 54},
-  [1529] = {.lex_state = 54},
-  [1530] = {.lex_state = 54},
-  [1531] = {.lex_state = 54},
-  [1532] = {.lex_state = 54},
-  [1533] = {.lex_state = 54},
-  [1534] = {.lex_state = 54},
-  [1535] = {.lex_state = 54},
-  [1536] = {.lex_state = 54},
-  [1537] = {.lex_state = 54},
-  [1538] = {.lex_state = 54},
-  [1539] = {.lex_state = 54},
-  [1540] = {.lex_state = 54},
-  [1541] = {.lex_state = 58},
-  [1542] = {.lex_state = 54},
-  [1543] = {.lex_state = 54},
-  [1544] = {.lex_state = 54},
-  [1545] = {.lex_state = 54},
-  [1546] = {.lex_state = 54},
-  [1547] = {.lex_state = 54},
-  [1548] = {.lex_state = 54},
-  [1549] = {.lex_state = 54},
-  [1550] = {.lex_state = 54},
-  [1551] = {.lex_state = 54},
-  [1552] = {.lex_state = 54},
-  [1553] = {.lex_state = 54},
-  [1554] = {.lex_state = 54},
-  [1555] = {.lex_state = 54},
-  [1556] = {.lex_state = 51},
-  [1557] = {.lex_state = 54},
-  [1558] = {.lex_state = 52},
-  [1559] = {.lex_state = 54},
-  [1560] = {.lex_state = 52},
-  [1561] = {.lex_state = 54},
-  [1562] = {.lex_state = 52},
-  [1563] = {.lex_state = 54},
-  [1564] = {.lex_state = 54},
-  [1565] = {.lex_state = 52},
-  [1566] = {.lex_state = 54},
-  [1567] = {.lex_state = 54},
-  [1568] = {.lex_state = 52},
-  [1569] = {.lex_state = 52},
-  [1570] = {.lex_state = 54},
-  [1571] = {.lex_state = 52},
-  [1572] = {.lex_state = 52},
-  [1573] = {.lex_state = 54},
-  [1574] = {.lex_state = 54},
-  [1575] = {.lex_state = 52},
-  [1576] = {.lex_state = 54},
-  [1577] = {.lex_state = 54},
-  [1578] = {.lex_state = 52},
-  [1579] = {.lex_state = 52},
-  [1580] = {.lex_state = 54},
-  [1581] = {.lex_state = 54},
-  [1582] = {.lex_state = 52},
+  [1417] = {.lex_state = 55},
+  [1418] = {.lex_state = 55},
+  [1419] = {.lex_state = 55},
+  [1420] = {.lex_state = 55},
+  [1421] = {.lex_state = 55},
+  [1422] = {.lex_state = 55},
+  [1423] = {.lex_state = 55},
+  [1424] = {.lex_state = 55},
+  [1425] = {.lex_state = 55},
+  [1426] = {.lex_state = 55},
+  [1427] = {.lex_state = 55},
+  [1428] = {.lex_state = 55},
+  [1429] = {.lex_state = 55},
+  [1430] = {.lex_state = 55},
+  [1431] = {.lex_state = 55},
+  [1432] = {.lex_state = 55},
+  [1433] = {.lex_state = 55},
+  [1434] = {.lex_state = 55},
+  [1435] = {.lex_state = 55},
+  [1436] = {.lex_state = 55},
+  [1437] = {.lex_state = 55},
+  [1438] = {.lex_state = 55},
+  [1439] = {.lex_state = 55},
+  [1440] = {.lex_state = 55},
+  [1441] = {.lex_state = 55},
+  [1442] = {.lex_state = 55},
+  [1443] = {.lex_state = 55},
+  [1444] = {.lex_state = 55},
+  [1445] = {.lex_state = 55},
+  [1446] = {.lex_state = 55},
+  [1447] = {.lex_state = 55},
+  [1448] = {.lex_state = 55},
+  [1449] = {.lex_state = 55},
+  [1450] = {.lex_state = 55},
+  [1451] = {.lex_state = 55},
+  [1452] = {.lex_state = 55},
+  [1453] = {.lex_state = 55},
+  [1454] = {.lex_state = 55},
+  [1455] = {.lex_state = 55},
+  [1456] = {.lex_state = 55},
+  [1457] = {.lex_state = 55},
+  [1458] = {.lex_state = 55},
+  [1459] = {.lex_state = 55},
+  [1460] = {.lex_state = 55},
+  [1461] = {.lex_state = 55},
+  [1462] = {.lex_state = 55},
+  [1463] = {.lex_state = 55},
+  [1464] = {.lex_state = 55},
+  [1465] = {.lex_state = 55},
+  [1466] = {.lex_state = 55},
+  [1467] = {.lex_state = 55},
+  [1468] = {.lex_state = 55},
+  [1469] = {.lex_state = 55},
+  [1470] = {.lex_state = 53},
+  [1471] = {.lex_state = 55},
+  [1472] = {.lex_state = 55},
+  [1473] = {.lex_state = 55},
+  [1474] = {.lex_state = 55},
+  [1475] = {.lex_state = 55},
+  [1476] = {.lex_state = 55},
+  [1477] = {.lex_state = 55},
+  [1478] = {.lex_state = 55},
+  [1479] = {.lex_state = 55},
+  [1480] = {.lex_state = 53},
+  [1481] = {.lex_state = 55},
+  [1482] = {.lex_state = 53},
+  [1483] = {.lex_state = 53},
+  [1484] = {.lex_state = 55},
+  [1485] = {.lex_state = 55},
+  [1486] = {.lex_state = 55},
+  [1487] = {.lex_state = 55},
+  [1488] = {.lex_state = 55},
+  [1489] = {.lex_state = 55},
+  [1490] = {.lex_state = 55},
+  [1491] = {.lex_state = 55},
+  [1492] = {.lex_state = 55},
+  [1493] = {.lex_state = 55},
+  [1494] = {.lex_state = 55},
+  [1495] = {.lex_state = 59},
+  [1496] = {.lex_state = 55},
+  [1497] = {.lex_state = 55},
+  [1498] = {.lex_state = 55},
+  [1499] = {.lex_state = 55},
+  [1500] = {.lex_state = 59},
+  [1501] = {.lex_state = 55},
+  [1502] = {.lex_state = 55},
+  [1503] = {.lex_state = 55},
+  [1504] = {.lex_state = 55},
+  [1505] = {.lex_state = 55},
+  [1506] = {.lex_state = 55},
+  [1507] = {.lex_state = 55},
+  [1508] = {.lex_state = 55},
+  [1509] = {.lex_state = 55},
+  [1510] = {.lex_state = 55},
+  [1511] = {.lex_state = 55},
+  [1512] = {.lex_state = 55},
+  [1513] = {.lex_state = 55},
+  [1514] = {.lex_state = 55},
+  [1515] = {.lex_state = 55},
+  [1516] = {.lex_state = 55},
+  [1517] = {.lex_state = 55},
+  [1518] = {.lex_state = 55},
+  [1519] = {.lex_state = 55},
+  [1520] = {.lex_state = 55},
+  [1521] = {.lex_state = 55},
+  [1522] = {.lex_state = 55},
+  [1523] = {.lex_state = 55},
+  [1524] = {.lex_state = 55},
+  [1525] = {.lex_state = 53},
+  [1526] = {.lex_state = 53},
+  [1527] = {.lex_state = 55},
+  [1528] = {.lex_state = 55},
+  [1529] = {.lex_state = 55},
+  [1530] = {.lex_state = 55},
+  [1531] = {.lex_state = 55},
+  [1532] = {.lex_state = 55},
+  [1533] = {.lex_state = 55},
+  [1534] = {.lex_state = 55},
+  [1535] = {.lex_state = 55},
+  [1536] = {.lex_state = 55},
+  [1537] = {.lex_state = 55},
+  [1538] = {.lex_state = 55},
+  [1539] = {.lex_state = 55},
+  [1540] = {.lex_state = 55},
+  [1541] = {.lex_state = 59},
+  [1542] = {.lex_state = 55},
+  [1543] = {.lex_state = 55},
+  [1544] = {.lex_state = 55},
+  [1545] = {.lex_state = 55},
+  [1546] = {.lex_state = 55},
+  [1547] = {.lex_state = 55},
+  [1548] = {.lex_state = 55},
+  [1549] = {.lex_state = 55},
+  [1550] = {.lex_state = 55},
+  [1551] = {.lex_state = 55},
+  [1552] = {.lex_state = 55},
+  [1553] = {.lex_state = 55},
+  [1554] = {.lex_state = 55},
+  [1555] = {.lex_state = 55},
+  [1556] = {.lex_state = 52},
+  [1557] = {.lex_state = 55},
+  [1558] = {.lex_state = 53},
+  [1559] = {.lex_state = 55},
+  [1560] = {.lex_state = 53},
+  [1561] = {.lex_state = 55},
+  [1562] = {.lex_state = 53},
+  [1563] = {.lex_state = 55},
+  [1564] = {.lex_state = 55},
+  [1565] = {.lex_state = 53},
+  [1566] = {.lex_state = 55},
+  [1567] = {.lex_state = 55},
+  [1568] = {.lex_state = 53},
+  [1569] = {.lex_state = 53},
+  [1570] = {.lex_state = 55},
+  [1571] = {.lex_state = 53},
+  [1572] = {.lex_state = 53},
+  [1573] = {.lex_state = 55},
+  [1574] = {.lex_state = 55},
+  [1575] = {.lex_state = 53},
+  [1576] = {.lex_state = 55},
+  [1577] = {.lex_state = 55},
+  [1578] = {.lex_state = 53},
+  [1579] = {.lex_state = 53},
+  [1580] = {.lex_state = 55},
+  [1581] = {.lex_state = 55},
+  [1582] = {.lex_state = 53},
   [1583] = {.lex_state = 0},
-  [1584] = {.lex_state = 54},
-  [1585] = {.lex_state = 54},
-  [1586] = {.lex_state = 54},
-  [1587] = {.lex_state = 54},
-  [1588] = {.lex_state = 54},
+  [1584] = {.lex_state = 55},
+  [1585] = {.lex_state = 55},
+  [1586] = {.lex_state = 55},
+  [1587] = {.lex_state = 55},
+  [1588] = {.lex_state = 55},
   [1589] = {.lex_state = 0},
-  [1590] = {.lex_state = 54},
-  [1591] = {.lex_state = 54},
-  [1592] = {.lex_state = 54},
-  [1593] = {.lex_state = 54},
-  [1594] = {.lex_state = 54},
-  [1595] = {.lex_state = 54},
-  [1596] = {.lex_state = 54},
-  [1597] = {.lex_state = 54},
+  [1590] = {.lex_state = 55},
+  [1591] = {.lex_state = 55},
+  [1592] = {.lex_state = 55},
+  [1593] = {.lex_state = 55},
+  [1594] = {.lex_state = 55},
+  [1595] = {.lex_state = 55},
+  [1596] = {.lex_state = 55},
+  [1597] = {.lex_state = 55},
   [1598] = {.lex_state = 57},
-  [1599] = {.lex_state = 51},
-  [1600] = {.lex_state = 51},
+  [1599] = {.lex_state = 52},
+  [1600] = {.lex_state = 52},
   [1601] = {.lex_state = 123},
   [1602] = {.lex_state = 123},
-  [1603] = {.lex_state = 54},
+  [1603] = {.lex_state = 55},
   [1604] = {.lex_state = 57},
-  [1605] = {.lex_state = 54},
-  [1606] = {.lex_state = 51},
-  [1607] = {.lex_state = 54},
+  [1605] = {.lex_state = 55},
+  [1606] = {.lex_state = 52},
+  [1607] = {.lex_state = 55},
   [1608] = {.lex_state = 57},
   [1609] = {.lex_state = 57},
   [1610] = {.lex_state = 123},
   [1611] = {.lex_state = 123},
   [1612] = {.lex_state = 123},
   [1613] = {.lex_state = 123},
-  [1614] = {.lex_state = 54},
+  [1614] = {.lex_state = 55},
   [1615] = {.lex_state = 123},
-  [1616] = {.lex_state = 52},
+  [1616] = {.lex_state = 53},
   [1617] = {.lex_state = 123},
   [1618] = {.lex_state = 0},
   [1619] = {.lex_state = 123},
   [1620] = {.lex_state = 123},
-  [1621] = {.lex_state = 54},
+  [1621] = {.lex_state = 55},
   [1622] = {.lex_state = 123},
   [1623] = {.lex_state = 123},
   [1624] = {.lex_state = 123},
   [1625] = {.lex_state = 123},
-  [1626] = {.lex_state = 54},
-  [1627] = {.lex_state = 54},
+  [1626] = {.lex_state = 55},
+  [1627] = {.lex_state = 55},
   [1628] = {.lex_state = 123},
-  [1629] = {.lex_state = 52},
+  [1629] = {.lex_state = 53},
   [1630] = {.lex_state = 123},
   [1631] = {.lex_state = 123},
   [1632] = {.lex_state = 123},
-  [1633] = {.lex_state = 52},
+  [1633] = {.lex_state = 53},
   [1634] = {.lex_state = 123},
   [1635] = {.lex_state = 123},
   [1636] = {.lex_state = 123},
   [1637] = {.lex_state = 123},
-  [1638] = {.lex_state = 54},
+  [1638] = {.lex_state = 55},
   [1639] = {.lex_state = 123},
   [1640] = {.lex_state = 123},
   [1641] = {.lex_state = 123},
@@ -16140,7 +12770,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [1672] = {.lex_state = 123},
   [1673] = {.lex_state = 123},
   [1674] = {.lex_state = 123},
-  [1675] = {.lex_state = 54},
+  [1675] = {.lex_state = 55},
   [1676] = {.lex_state = 123},
   [1677] = {.lex_state = 123},
   [1678] = {.lex_state = 123},
@@ -16156,8 +12786,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [1688] = {.lex_state = 123},
   [1689] = {.lex_state = 123},
   [1690] = {.lex_state = 123},
-  [1691] = {.lex_state = 54},
-  [1692] = {.lex_state = 54},
+  [1691] = {.lex_state = 55},
+  [1692] = {.lex_state = 55},
   [1693] = {.lex_state = 123},
   [1694] = {.lex_state = 123},
   [1695] = {.lex_state = 123},
@@ -16169,194 +12799,194 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [1701] = {.lex_state = 123},
   [1702] = {.lex_state = 123},
   [1703] = {.lex_state = 123},
-  [1704] = {.lex_state = 54},
+  [1704] = {.lex_state = 55},
   [1705] = {.lex_state = 123},
   [1706] = {.lex_state = 123},
-  [1707] = {.lex_state = 54},
+  [1707] = {.lex_state = 55},
   [1708] = {.lex_state = 123},
-  [1709] = {.lex_state = 54},
+  [1709] = {.lex_state = 55},
   [1710] = {.lex_state = 123},
   [1711] = {.lex_state = 123},
-  [1712] = {.lex_state = 54},
-  [1713] = {.lex_state = 54},
-  [1714] = {.lex_state = 54},
-  [1715] = {.lex_state = 54},
+  [1712] = {.lex_state = 55},
+  [1713] = {.lex_state = 55},
+  [1714] = {.lex_state = 55},
+  [1715] = {.lex_state = 55},
   [1716] = {.lex_state = 123},
-  [1717] = {.lex_state = 54},
-  [1718] = {.lex_state = 54},
+  [1717] = {.lex_state = 55},
+  [1718] = {.lex_state = 55},
   [1719] = {.lex_state = 0},
-  [1720] = {.lex_state = 54},
-  [1721] = {.lex_state = 54},
-  [1722] = {.lex_state = 54},
+  [1720] = {.lex_state = 55},
+  [1721] = {.lex_state = 55},
+  [1722] = {.lex_state = 55},
   [1723] = {.lex_state = 0},
-  [1724] = {.lex_state = 54},
-  [1725] = {.lex_state = 52},
-  [1726] = {.lex_state = 54},
+  [1724] = {.lex_state = 55},
+  [1725] = {.lex_state = 53},
+  [1726] = {.lex_state = 55},
   [1727] = {.lex_state = 123},
-  [1728] = {.lex_state = 54},
-  [1729] = {.lex_state = 58},
-  [1730] = {.lex_state = 54},
-  [1731] = {.lex_state = 54},
-  [1732] = {.lex_state = 54},
+  [1728] = {.lex_state = 55},
+  [1729] = {.lex_state = 59},
+  [1730] = {.lex_state = 55},
+  [1731] = {.lex_state = 55},
+  [1732] = {.lex_state = 55},
   [1733] = {.lex_state = 0},
   [1734] = {.lex_state = 123},
-  [1735] = {.lex_state = 54},
-  [1736] = {.lex_state = 54},
+  [1735] = {.lex_state = 55},
+  [1736] = {.lex_state = 55},
   [1737] = {.lex_state = 123},
   [1738] = {.lex_state = 123},
-  [1739] = {.lex_state = 54},
+  [1739] = {.lex_state = 55},
   [1740] = {.lex_state = 123},
-  [1741] = {.lex_state = 54},
-  [1742] = {.lex_state = 54},
-  [1743] = {.lex_state = 54},
-  [1744] = {.lex_state = 54},
-  [1745] = {.lex_state = 54},
-  [1746] = {.lex_state = 54},
-  [1747] = {.lex_state = 54},
-  [1748] = {.lex_state = 54},
-  [1749] = {.lex_state = 58},
+  [1741] = {.lex_state = 55},
+  [1742] = {.lex_state = 55},
+  [1743] = {.lex_state = 55},
+  [1744] = {.lex_state = 55},
+  [1745] = {.lex_state = 55},
+  [1746] = {.lex_state = 55},
+  [1747] = {.lex_state = 55},
+  [1748] = {.lex_state = 55},
+  [1749] = {.lex_state = 59},
   [1750] = {.lex_state = 123},
-  [1751] = {.lex_state = 58},
+  [1751] = {.lex_state = 59},
   [1752] = {.lex_state = 123},
-  [1753] = {.lex_state = 58},
-  [1754] = {.lex_state = 54},
-  [1755] = {.lex_state = 54},
+  [1753] = {.lex_state = 59},
+  [1754] = {.lex_state = 55},
+  [1755] = {.lex_state = 55},
   [1756] = {.lex_state = 123},
-  [1757] = {.lex_state = 58},
+  [1757] = {.lex_state = 59},
   [1758] = {.lex_state = 123},
-  [1759] = {.lex_state = 54},
-  [1760] = {.lex_state = 54},
+  [1759] = {.lex_state = 55},
+  [1760] = {.lex_state = 55},
   [1761] = {.lex_state = 0},
-  [1762] = {.lex_state = 54},
+  [1762] = {.lex_state = 55},
   [1763] = {.lex_state = 0},
-  [1764] = {.lex_state = 54},
-  [1765] = {.lex_state = 54},
-  [1766] = {.lex_state = 58},
-  [1767] = {.lex_state = 58},
-  [1768] = {.lex_state = 52},
-  [1769] = {.lex_state = 58},
-  [1770] = {.lex_state = 58},
-  [1771] = {.lex_state = 54},
-  [1772] = {.lex_state = 58},
-  [1773] = {.lex_state = 54},
-  [1774] = {.lex_state = 58},
+  [1764] = {.lex_state = 55},
+  [1765] = {.lex_state = 55},
+  [1766] = {.lex_state = 59},
+  [1767] = {.lex_state = 59},
+  [1768] = {.lex_state = 53},
+  [1769] = {.lex_state = 59},
+  [1770] = {.lex_state = 59},
+  [1771] = {.lex_state = 55},
+  [1772] = {.lex_state = 59},
+  [1773] = {.lex_state = 55},
+  [1774] = {.lex_state = 59},
   [1775] = {.lex_state = 123},
-  [1776] = {.lex_state = 54},
+  [1776] = {.lex_state = 55},
   [1777] = {.lex_state = 123},
   [1778] = {.lex_state = 123},
   [1779] = {.lex_state = 123},
-  [1780] = {.lex_state = 54},
+  [1780] = {.lex_state = 55},
   [1781] = {.lex_state = 123},
-  [1782] = {.lex_state = 54},
+  [1782] = {.lex_state = 55},
   [1783] = {.lex_state = 123},
   [1784] = {.lex_state = 123},
   [1785] = {.lex_state = 123},
   [1786] = {.lex_state = 123},
-  [1787] = {.lex_state = 54},
+  [1787] = {.lex_state = 55},
   [1788] = {.lex_state = 123},
-  [1789] = {.lex_state = 52},
-  [1790] = {.lex_state = 54},
+  [1789] = {.lex_state = 53},
+  [1790] = {.lex_state = 55},
   [1791] = {.lex_state = 123},
-  [1792] = {.lex_state = 54},
+  [1792] = {.lex_state = 55},
   [1793] = {.lex_state = 123},
-  [1794] = {.lex_state = 54},
-  [1795] = {.lex_state = 54},
+  [1794] = {.lex_state = 55},
+  [1795] = {.lex_state = 55},
   [1796] = {.lex_state = 123},
-  [1797] = {.lex_state = 46},
+  [1797] = {.lex_state = 47},
   [1798] = {.lex_state = 123},
   [1799] = {.lex_state = 123},
   [1800] = {.lex_state = 123},
   [1801] = {.lex_state = 123},
   [1802] = {.lex_state = 123},
   [1803] = {.lex_state = 0},
-  [1804] = {.lex_state = 54},
+  [1804] = {.lex_state = 55},
   [1805] = {.lex_state = 0},
   [1806] = {.lex_state = 123},
-  [1807] = {.lex_state = 46},
-  [1808] = {.lex_state = 54},
+  [1807] = {.lex_state = 47},
+  [1808] = {.lex_state = 55},
   [1809] = {.lex_state = 28},
   [1810] = {.lex_state = 123},
-  [1811] = {.lex_state = 54},
-  [1812] = {.lex_state = 54},
+  [1811] = {.lex_state = 55},
+  [1812] = {.lex_state = 55},
   [1813] = {.lex_state = 0},
-  [1814] = {.lex_state = 54},
+  [1814] = {.lex_state = 55},
   [1815] = {.lex_state = 0},
-  [1816] = {.lex_state = 54},
-  [1817] = {.lex_state = 52},
+  [1816] = {.lex_state = 55},
+  [1817] = {.lex_state = 53},
   [1818] = {.lex_state = 28},
   [1819] = {.lex_state = 123},
-  [1820] = {.lex_state = 54},
+  [1820] = {.lex_state = 55},
   [1821] = {.lex_state = 30},
-  [1822] = {.lex_state = 54},
-  [1823] = {.lex_state = 52},
-  [1824] = {.lex_state = 52},
-  [1825] = {.lex_state = 52},
+  [1822] = {.lex_state = 55},
+  [1823] = {.lex_state = 53},
+  [1824] = {.lex_state = 53},
+  [1825] = {.lex_state = 53},
   [1826] = {.lex_state = 37},
   [1827] = {.lex_state = 28},
   [1828] = {.lex_state = 28},
   [1829] = {.lex_state = 30},
   [1830] = {.lex_state = 28},
-  [1831] = {.lex_state = 54},
-  [1832] = {.lex_state = 54},
+  [1831] = {.lex_state = 55},
+  [1832] = {.lex_state = 55},
   [1833] = {.lex_state = 123},
   [1834] = {.lex_state = 30},
   [1835] = {.lex_state = 30},
   [1836] = {.lex_state = 123},
   [1837] = {.lex_state = 123},
-  [1838] = {.lex_state = 54},
+  [1838] = {.lex_state = 55},
   [1839] = {.lex_state = 30},
-  [1840] = {.lex_state = 54},
-  [1841] = {.lex_state = 54},
-  [1842] = {.lex_state = 54},
+  [1840] = {.lex_state = 55},
+  [1841] = {.lex_state = 55},
+  [1842] = {.lex_state = 55},
   [1843] = {.lex_state = 0},
-  [1844] = {.lex_state = 54},
-  [1845] = {.lex_state = 54},
-  [1846] = {.lex_state = 54},
-  [1847] = {.lex_state = 54},
-  [1848] = {.lex_state = 54},
+  [1844] = {.lex_state = 55},
+  [1845] = {.lex_state = 55},
+  [1846] = {.lex_state = 55},
+  [1847] = {.lex_state = 55},
+  [1848] = {.lex_state = 55},
   [1849] = {.lex_state = 123},
   [1850] = {.lex_state = 0},
   [1851] = {.lex_state = 0},
-  [1852] = {.lex_state = 54},
+  [1852] = {.lex_state = 55},
   [1853] = {.lex_state = 0},
   [1854] = {.lex_state = 37},
   [1855] = {.lex_state = 28},
-  [1856] = {.lex_state = 54},
-  [1857] = {.lex_state = 54},
-  [1858] = {.lex_state = 54},
-  [1859] = {.lex_state = 54},
+  [1856] = {.lex_state = 55},
+  [1857] = {.lex_state = 55},
+  [1858] = {.lex_state = 55},
+  [1859] = {.lex_state = 55},
   [1860] = {.lex_state = 123},
-  [1861] = {.lex_state = 54},
+  [1861] = {.lex_state = 55},
   [1862] = {.lex_state = 37},
   [1863] = {.lex_state = 28},
   [1864] = {.lex_state = 37},
   [1865] = {.lex_state = 0},
-  [1866] = {.lex_state = 54},
+  [1866] = {.lex_state = 55},
   [1867] = {.lex_state = 123},
   [1868] = {.lex_state = 123},
-  [1869] = {.lex_state = 54},
-  [1870] = {.lex_state = 54},
-  [1871] = {.lex_state = 54},
-  [1872] = {.lex_state = 54},
-  [1873] = {.lex_state = 54},
-  [1874] = {.lex_state = 54},
-  [1875] = {.lex_state = 54},
+  [1869] = {.lex_state = 55},
+  [1870] = {.lex_state = 55},
+  [1871] = {.lex_state = 55},
+  [1872] = {.lex_state = 55},
+  [1873] = {.lex_state = 55},
+  [1874] = {.lex_state = 55},
+  [1875] = {.lex_state = 55},
   [1876] = {.lex_state = 30},
   [1877] = {.lex_state = 30},
   [1878] = {.lex_state = 0},
-  [1879] = {.lex_state = 54},
+  [1879] = {.lex_state = 55},
   [1880] = {.lex_state = 0},
   [1881] = {.lex_state = 0},
-  [1882] = {.lex_state = 54},
+  [1882] = {.lex_state = 55},
   [1883] = {.lex_state = 0},
   [1884] = {.lex_state = 0},
   [1885] = {.lex_state = 0},
   [1886] = {.lex_state = 0},
   [1887] = {.lex_state = 0},
   [1888] = {.lex_state = 0},
-  [1889] = {.lex_state = 46},
+  [1889] = {.lex_state = 47},
   [1890] = {.lex_state = 0},
-  [1891] = {.lex_state = 54},
+  [1891] = {.lex_state = 55},
   [1892] = {.lex_state = 0},
   [1893] = {.lex_state = 0},
   [1894] = {.lex_state = 0},
@@ -16367,13 +12997,13 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [1899] = {.lex_state = 0},
   [1900] = {.lex_state = 0},
   [1901] = {.lex_state = 0},
-  [1902] = {.lex_state = 54},
+  [1902] = {.lex_state = 55},
   [1903] = {.lex_state = 37},
   [1904] = {.lex_state = 0},
   [1905] = {.lex_state = 0},
   [1906] = {.lex_state = 0},
   [1907] = {.lex_state = 0},
-  [1908] = {.lex_state = 54},
+  [1908] = {.lex_state = 55},
   [1909] = {.lex_state = 0},
   [1910] = {.lex_state = 0},
   [1911] = {.lex_state = 0},
@@ -16384,7 +13014,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [1916] = {.lex_state = 0},
   [1917] = {.lex_state = 0},
   [1918] = {.lex_state = 0},
-  [1919] = {.lex_state = 54},
+  [1919] = {.lex_state = 55},
   [1920] = {.lex_state = 0},
   [1921] = {.lex_state = 0},
   [1922] = {.lex_state = 0},
@@ -16407,7 +13037,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [1939] = {.lex_state = 0},
   [1940] = {.lex_state = 0},
   [1941] = {.lex_state = 0},
-  [1942] = {.lex_state = 54},
+  [1942] = {.lex_state = 55},
   [1943] = {.lex_state = 0},
   [1944] = {.lex_state = 0},
   [1945] = {.lex_state = 0},
@@ -16422,7 +13052,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [1954] = {.lex_state = 0},
   [1955] = {.lex_state = 0},
   [1956] = {.lex_state = 0},
-  [1957] = {.lex_state = 54},
+  [1957] = {.lex_state = 55},
   [1958] = {.lex_state = 0},
   [1959] = {.lex_state = 0},
   [1960] = {.lex_state = 0},
@@ -16430,15 +13060,15 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [1962] = {.lex_state = 0},
   [1963] = {.lex_state = 0},
   [1964] = {.lex_state = 0},
-  [1965] = {.lex_state = 54},
+  [1965] = {.lex_state = 55},
   [1966] = {.lex_state = 0},
-  [1967] = {.lex_state = 54},
+  [1967] = {.lex_state = 55},
   [1968] = {.lex_state = 0},
-  [1969] = {.lex_state = 46},
+  [1969] = {.lex_state = 47},
   [1970] = {.lex_state = 0},
   [1971] = {.lex_state = 0},
-  [1972] = {.lex_state = 54},
-  [1973] = {.lex_state = 46},
+  [1972] = {.lex_state = 55},
+  [1973] = {.lex_state = 47},
   [1974] = {.lex_state = 0},
   [1975] = {.lex_state = 32},
   [1976] = {.lex_state = 0},
@@ -16465,10 +13095,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [1997] = {.lex_state = 0},
   [1998] = {.lex_state = 0},
   [1999] = {.lex_state = 0},
-  [2000] = {.lex_state = 46},
+  [2000] = {.lex_state = 47},
   [2001] = {.lex_state = 0},
   [2002] = {.lex_state = 0},
-  [2003] = {.lex_state = 54},
+  [2003] = {.lex_state = 55},
   [2004] = {.lex_state = 0},
   [2005] = {.lex_state = 0},
   [2006] = {.lex_state = 37},
@@ -16477,20 +13107,20 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [2009] = {.lex_state = 0},
   [2010] = {.lex_state = 0},
   [2011] = {.lex_state = 0},
-  [2012] = {.lex_state = 54},
+  [2012] = {.lex_state = 55},
   [2013] = {.lex_state = 0},
-  [2014] = {.lex_state = 46},
+  [2014] = {.lex_state = 47},
   [2015] = {.lex_state = 0},
   [2016] = {.lex_state = 0},
-  [2017] = {.lex_state = 54},
-  [2018] = {.lex_state = 46},
+  [2017] = {.lex_state = 55},
+  [2018] = {.lex_state = 47},
   [2019] = {.lex_state = 0},
   [2020] = {.lex_state = 0},
   [2021] = {.lex_state = 0},
   [2022] = {.lex_state = 0},
-  [2023] = {.lex_state = 54},
+  [2023] = {.lex_state = 55},
   [2024] = {.lex_state = 0},
-  [2025] = {.lex_state = 54},
+  [2025] = {.lex_state = 55},
   [2026] = {.lex_state = 32},
   [2027] = {.lex_state = 0},
   [2028] = {.lex_state = 0},
@@ -16498,7 +13128,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [2030] = {.lex_state = 0},
   [2031] = {.lex_state = 33},
   [2032] = {.lex_state = 0},
-  [2033] = {.lex_state = 54},
+  [2033] = {.lex_state = 55},
   [2034] = {.lex_state = 0},
   [2035] = {.lex_state = 33},
   [2036] = {.lex_state = 0},
@@ -16510,7 +13140,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [2042] = {.lex_state = 0},
   [2043] = {.lex_state = 0},
   [2044] = {.lex_state = 0},
-  [2045] = {.lex_state = 46},
+  [2045] = {.lex_state = 47},
   [2046] = {.lex_state = 0},
   [2047] = {.lex_state = 0},
   [2048] = {.lex_state = 0},
@@ -16527,15 +13157,15 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [2059] = {.lex_state = 31},
   [2060] = {.lex_state = 0},
   [2061] = {.lex_state = 0},
-  [2062] = {.lex_state = 46},
-  [2063] = {.lex_state = 54},
+  [2062] = {.lex_state = 47},
+  [2063] = {.lex_state = 55},
   [2064] = {.lex_state = 31},
   [2065] = {.lex_state = 31},
   [2066] = {.lex_state = 0},
   [2067] = {.lex_state = 0},
   [2068] = {.lex_state = 31},
   [2069] = {.lex_state = 31},
-  [2070] = {.lex_state = 54},
+  [2070] = {.lex_state = 55},
   [2071] = {.lex_state = 31},
   [2072] = {.lex_state = 123},
   [2073] = {.lex_state = 31},
@@ -16547,9 +13177,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [2079] = {.lex_state = 0},
   [2080] = {.lex_state = 123},
   [2081] = {.lex_state = 0},
-  [2082] = {.lex_state = 54},
+  [2082] = {.lex_state = 55},
   [2083] = {.lex_state = 123},
-  [2084] = {.lex_state = 54},
+  [2084] = {.lex_state = 55},
   [2085] = {.lex_state = 0},
   [2086] = {.lex_state = 0},
   [2087] = {.lex_state = 31},
@@ -16558,7 +13188,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [2090] = {.lex_state = 0},
   [2091] = {.lex_state = 123},
   [2092] = {.lex_state = 123},
-  [2093] = {.lex_state = 46},
+  [2093] = {.lex_state = 47},
   [2094] = {.lex_state = 0},
   [2095] = {.lex_state = 0},
   [2096] = {.lex_state = 123},
@@ -16569,7 +13199,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [2101] = {.lex_state = 123},
   [2102] = {.lex_state = 123},
   [2103] = {.lex_state = 123},
-  [2104] = {.lex_state = 54},
+  [2104] = {.lex_state = 55},
   [2105] = {.lex_state = 123},
   [2106] = {.lex_state = 0},
   [2107] = {.lex_state = 0},
@@ -16577,14 +13207,14 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [2109] = {.lex_state = 0},
   [2110] = {.lex_state = 0},
   [2111] = {.lex_state = 0},
-  [2112] = {.lex_state = 46},
+  [2112] = {.lex_state = 47},
   [2113] = {.lex_state = 31},
   [2114] = {.lex_state = 123},
   [2115] = {.lex_state = 123},
   [2116] = {.lex_state = 31},
   [2117] = {.lex_state = 123},
   [2118] = {.lex_state = 0},
-  [2119] = {.lex_state = 54},
+  [2119] = {.lex_state = 55},
   [2120] = {.lex_state = 0},
   [2121] = {.lex_state = 31},
   [2122] = {.lex_state = 123},
@@ -16593,8 +13223,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [2125] = {.lex_state = 31},
   [2126] = {.lex_state = 0},
   [2127] = {.lex_state = 0},
-  [2128] = {.lex_state = 54},
-  [2129] = {.lex_state = 54},
+  [2128] = {.lex_state = 55},
+  [2129] = {.lex_state = 55},
   [2130] = {.lex_state = 123},
   [2131] = {.lex_state = 123},
   [2132] = {.lex_state = 0},
@@ -16612,21 +13242,21 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [2144] = {.lex_state = 0},
   [2145] = {.lex_state = 0},
   [2146] = {.lex_state = 123},
-  [2147] = {.lex_state = 54},
-  [2148] = {.lex_state = 54},
-  [2149] = {.lex_state = 45},
-  [2150] = {.lex_state = 45},
+  [2147] = {.lex_state = 55},
+  [2148] = {.lex_state = 55},
+  [2149] = {.lex_state = 46},
+  [2150] = {.lex_state = 46},
   [2151] = {.lex_state = 0},
   [2152] = {.lex_state = 0},
   [2153] = {.lex_state = 0},
-  [2154] = {.lex_state = 54},
+  [2154] = {.lex_state = 55},
   [2155] = {.lex_state = 123},
   [2156] = {.lex_state = 0},
-  [2157] = {.lex_state = 45},
+  [2157] = {.lex_state = 46},
   [2158] = {.lex_state = 32},
-  [2159] = {.lex_state = 54},
-  [2160] = {.lex_state = 54},
-  [2161] = {.lex_state = 45},
+  [2159] = {.lex_state = 55},
+  [2160] = {.lex_state = 55},
+  [2161] = {.lex_state = 46},
   [2162] = {.lex_state = 0},
   [2163] = {.lex_state = 0},
   [2164] = {.lex_state = 0},
@@ -16642,57 +13272,57 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [2174] = {.lex_state = 0},
   [2175] = {.lex_state = 0},
   [2176] = {.lex_state = 0},
-  [2177] = {.lex_state = 54},
+  [2177] = {.lex_state = 55},
   [2178] = {.lex_state = 0},
   [2179] = {.lex_state = 0},
   [2180] = {.lex_state = 0},
   [2181] = {.lex_state = 0},
   [2182] = {.lex_state = 0},
-  [2183] = {.lex_state = 54},
-  [2184] = {.lex_state = 54},
-  [2185] = {.lex_state = 54},
+  [2183] = {.lex_state = 55},
+  [2184] = {.lex_state = 55},
+  [2185] = {.lex_state = 55},
   [2186] = {.lex_state = 0},
   [2187] = {.lex_state = 0},
   [2188] = {.lex_state = 0},
   [2189] = {.lex_state = 0},
   [2190] = {.lex_state = 32},
-  [2191] = {.lex_state = 54},
+  [2191] = {.lex_state = 55},
   [2192] = {.lex_state = 32},
-  [2193] = {.lex_state = 45},
+  [2193] = {.lex_state = 46},
   [2194] = {.lex_state = 0},
-  [2195] = {.lex_state = 45},
-  [2196] = {.lex_state = 45},
+  [2195] = {.lex_state = 46},
+  [2196] = {.lex_state = 46},
   [2197] = {.lex_state = 0},
   [2198] = {.lex_state = 0},
-  [2199] = {.lex_state = 45},
-  [2200] = {.lex_state = 45},
-  [2201] = {.lex_state = 45},
+  [2199] = {.lex_state = 46},
+  [2200] = {.lex_state = 46},
+  [2201] = {.lex_state = 46},
   [2202] = {.lex_state = 32},
   [2203] = {.lex_state = 0},
   [2204] = {.lex_state = 0},
-  [2205] = {.lex_state = 45},
+  [2205] = {.lex_state = 46},
   [2206] = {.lex_state = 32},
-  [2207] = {.lex_state = 54},
+  [2207] = {.lex_state = 55},
   [2208] = {.lex_state = 0},
   [2209] = {.lex_state = 32},
-  [2210] = {.lex_state = 54},
+  [2210] = {.lex_state = 55},
   [2211] = {.lex_state = 0},
   [2212] = {.lex_state = 0},
   [2213] = {.lex_state = 0},
-  [2214] = {.lex_state = 45},
-  [2215] = {.lex_state = 54},
+  [2214] = {.lex_state = 46},
+  [2215] = {.lex_state = 55},
   [2216] = {.lex_state = 123},
-  [2217] = {.lex_state = 45},
+  [2217] = {.lex_state = 46},
   [2218] = {.lex_state = 0},
   [2219] = {.lex_state = 32},
   [2220] = {.lex_state = 0},
   [2221] = {.lex_state = 0},
   [2222] = {.lex_state = 0},
   [2223] = {.lex_state = 0},
-  [2224] = {.lex_state = 45},
-  [2225] = {.lex_state = 45},
-  [2226] = {.lex_state = 54},
-  [2227] = {.lex_state = 54},
+  [2224] = {.lex_state = 46},
+  [2225] = {.lex_state = 46},
+  [2226] = {.lex_state = 55},
+  [2227] = {.lex_state = 55},
   [2228] = {.lex_state = 32},
   [2229] = {.lex_state = 0},
   [2230] = {.lex_state = 0},
@@ -16701,25 +13331,25 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [2233] = {.lex_state = 32},
   [2234] = {.lex_state = 32},
   [2235] = {.lex_state = 32},
-  [2236] = {.lex_state = 54},
+  [2236] = {.lex_state = 55},
   [2237] = {.lex_state = 123},
   [2238] = {.lex_state = 0},
-  [2239] = {.lex_state = 45},
+  [2239] = {.lex_state = 46},
   [2240] = {.lex_state = 32},
   [2241] = {.lex_state = 32},
   [2242] = {.lex_state = 0},
   [2243] = {.lex_state = 0},
-  [2244] = {.lex_state = 45},
+  [2244] = {.lex_state = 46},
   [2245] = {.lex_state = 0},
   [2246] = {.lex_state = 0},
   [2247] = {.lex_state = 0},
   [2248] = {.lex_state = 0},
-  [2249] = {.lex_state = 45},
+  [2249] = {.lex_state = 46},
   [2250] = {.lex_state = 0},
   [2251] = {.lex_state = 0},
   [2252] = {.lex_state = 0},
   [2253] = {.lex_state = 0},
-  [2254] = {.lex_state = 54},
+  [2254] = {.lex_state = 55},
   [2255] = {.lex_state = 0},
   [2256] = {.lex_state = 0},
   [2257] = {.lex_state = 0},
@@ -16727,33 +13357,33 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [2259] = {.lex_state = 0},
   [2260] = {.lex_state = 32},
   [2261] = {.lex_state = 0},
-  [2262] = {.lex_state = 45},
+  [2262] = {.lex_state = 46},
   [2263] = {.lex_state = 32},
-  [2264] = {.lex_state = 54},
-  [2265] = {.lex_state = 45},
-  [2266] = {.lex_state = 45},
+  [2264] = {.lex_state = 55},
+  [2265] = {.lex_state = 46},
+  [2266] = {.lex_state = 46},
   [2267] = {.lex_state = 0},
   [2268] = {.lex_state = 0},
   [2269] = {.lex_state = 0},
   [2270] = {.lex_state = 0},
   [2271] = {.lex_state = 0},
   [2272] = {.lex_state = 0},
-  [2273] = {.lex_state = 45},
-  [2274] = {.lex_state = 54},
-  [2275] = {.lex_state = 54},
-  [2276] = {.lex_state = 45},
-  [2277] = {.lex_state = 45},
-  [2278] = {.lex_state = 54},
+  [2273] = {.lex_state = 46},
+  [2274] = {.lex_state = 55},
+  [2275] = {.lex_state = 55},
+  [2276] = {.lex_state = 46},
+  [2277] = {.lex_state = 46},
+  [2278] = {.lex_state = 55},
   [2279] = {.lex_state = 0},
-  [2280] = {.lex_state = 45},
+  [2280] = {.lex_state = 46},
   [2281] = {.lex_state = 0},
   [2282] = {.lex_state = 0},
   [2283] = {.lex_state = 32},
   [2284] = {.lex_state = 123},
-  [2285] = {.lex_state = 54},
-  [2286] = {.lex_state = 54},
+  [2285] = {.lex_state = 55},
+  [2286] = {.lex_state = 55},
   [2287] = {.lex_state = 123},
-  [2288] = {.lex_state = 45},
+  [2288] = {.lex_state = 46},
   [2289] = {.lex_state = 0},
   [2290] = {.lex_state = 0},
   [2291] = {.lex_state = 0},
@@ -16762,8 +13392,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [2294] = {.lex_state = 0},
   [2295] = {.lex_state = 0},
   [2296] = {.lex_state = 0},
-  [2297] = {.lex_state = 54},
-  [2298] = {.lex_state = 54},
+  [2297] = {.lex_state = 55},
+  [2298] = {.lex_state = 55},
   [2299] = {.lex_state = 123},
   [2300] = {.lex_state = 0},
   [2301] = {.lex_state = 0},
@@ -16771,30 +13401,30 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [2303] = {.lex_state = 0},
   [2304] = {.lex_state = 0},
   [2305] = {.lex_state = 32},
-  [2306] = {.lex_state = 45},
+  [2306] = {.lex_state = 46},
   [2307] = {.lex_state = 0},
   [2308] = {.lex_state = 0},
   [2309] = {.lex_state = 32},
   [2310] = {.lex_state = 0},
-  [2311] = {.lex_state = 45},
+  [2311] = {.lex_state = 46},
   [2312] = {.lex_state = 0},
-  [2313] = {.lex_state = 45},
-  [2314] = {.lex_state = 45},
-  [2315] = {.lex_state = 45},
+  [2313] = {.lex_state = 46},
+  [2314] = {.lex_state = 46},
+  [2315] = {.lex_state = 46},
   [2316] = {.lex_state = 0},
-  [2317] = {.lex_state = 54},
+  [2317] = {.lex_state = 55},
   [2318] = {.lex_state = 32},
   [2319] = {.lex_state = 0},
   [2320] = {.lex_state = 32},
-  [2321] = {.lex_state = 48},
+  [2321] = {.lex_state = 49},
   [2322] = {.lex_state = 0},
   [2323] = {.lex_state = 0},
   [2324] = {.lex_state = 0},
-  [2325] = {.lex_state = 54},
-  [2326] = {.lex_state = 54},
+  [2325] = {.lex_state = 55},
+  [2326] = {.lex_state = 55},
   [2327] = {.lex_state = 0},
-  [2328] = {.lex_state = 45},
-  [2329] = {.lex_state = 45},
+  [2328] = {.lex_state = 46},
+  [2329] = {.lex_state = 46},
   [2330] = {.lex_state = 0},
   [2331] = {.lex_state = 0},
   [2332] = {.lex_state = 0},
@@ -16803,79 +13433,79 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [2335] = {.lex_state = 0},
   [2336] = {.lex_state = 0},
   [2337] = {.lex_state = 0},
-  [2338] = {.lex_state = 45},
-  [2339] = {.lex_state = 48},
+  [2338] = {.lex_state = 46},
+  [2339] = {.lex_state = 49},
   [2340] = {.lex_state = 0},
-  [2341] = {.lex_state = 45},
-  [2342] = {.lex_state = 45},
+  [2341] = {.lex_state = 46},
+  [2342] = {.lex_state = 46},
   [2343] = {.lex_state = 0},
-  [2344] = {.lex_state = 45},
-  [2345] = {.lex_state = 54},
-  [2346] = {.lex_state = 45},
+  [2344] = {.lex_state = 46},
+  [2345] = {.lex_state = 55},
+  [2346] = {.lex_state = 46},
   [2347] = {.lex_state = 0},
   [2348] = {.lex_state = 32},
-  [2349] = {.lex_state = 54},
-  [2350] = {.lex_state = 45},
-  [2351] = {.lex_state = 45},
+  [2349] = {.lex_state = 55},
+  [2350] = {.lex_state = 46},
+  [2351] = {.lex_state = 46},
   [2352] = {.lex_state = 0},
-  [2353] = {.lex_state = 45},
+  [2353] = {.lex_state = 46},
   [2354] = {.lex_state = 123},
   [2355] = {.lex_state = 0},
   [2356] = {.lex_state = 0},
   [2357] = {.lex_state = 0},
-  [2358] = {.lex_state = 45},
-  [2359] = {.lex_state = 45},
-  [2360] = {.lex_state = 45},
+  [2358] = {.lex_state = 46},
+  [2359] = {.lex_state = 46},
+  [2360] = {.lex_state = 46},
   [2361] = {.lex_state = 123},
   [2362] = {.lex_state = 0},
-  [2363] = {.lex_state = 54},
-  [2364] = {.lex_state = 48},
+  [2363] = {.lex_state = 55},
+  [2364] = {.lex_state = 49},
   [2365] = {.lex_state = 0},
   [2366] = {.lex_state = 32},
-  [2367] = {.lex_state = 54},
-  [2368] = {.lex_state = 54},
+  [2367] = {.lex_state = 55},
+  [2368] = {.lex_state = 55},
   [2369] = {.lex_state = 32},
   [2370] = {.lex_state = 123},
-  [2371] = {.lex_state = 45},
+  [2371] = {.lex_state = 46},
   [2372] = {.lex_state = 0},
-  [2373] = {.lex_state = 54},
-  [2374] = {.lex_state = 54},
+  [2373] = {.lex_state = 55},
+  [2374] = {.lex_state = 55},
   [2375] = {.lex_state = 0},
-  [2376] = {.lex_state = 54},
+  [2376] = {.lex_state = 55},
   [2377] = {.lex_state = 0},
   [2378] = {.lex_state = 0},
   [2379] = {.lex_state = 0},
   [2380] = {.lex_state = 32},
-  [2381] = {.lex_state = 48},
+  [2381] = {.lex_state = 49},
   [2382] = {.lex_state = 32},
   [2383] = {.lex_state = 0},
-  [2384] = {.lex_state = 54},
-  [2385] = {.lex_state = 45},
-  [2386] = {.lex_state = 45},
+  [2384] = {.lex_state = 55},
+  [2385] = {.lex_state = 46},
+  [2386] = {.lex_state = 46},
   [2387] = {.lex_state = 0},
   [2388] = {.lex_state = 32},
   [2389] = {.lex_state = 32},
   [2390] = {.lex_state = 0},
-  [2391] = {.lex_state = 54},
-  [2392] = {.lex_state = 54},
+  [2391] = {.lex_state = 55},
+  [2392] = {.lex_state = 55},
   [2393] = {.lex_state = 32},
-  [2394] = {.lex_state = 54},
+  [2394] = {.lex_state = 55},
   [2395] = {.lex_state = 123},
   [2396] = {.lex_state = 0},
-  [2397] = {.lex_state = 45},
-  [2398] = {.lex_state = 45},
+  [2397] = {.lex_state = 46},
+  [2398] = {.lex_state = 46},
   [2399] = {.lex_state = 32},
-  [2400] = {.lex_state = 54},
+  [2400] = {.lex_state = 55},
   [2401] = {.lex_state = 32},
   [2402] = {.lex_state = 123},
-  [2403] = {.lex_state = 45},
-  [2404] = {.lex_state = 54},
-  [2405] = {.lex_state = 54},
+  [2403] = {.lex_state = 46},
+  [2404] = {.lex_state = 55},
+  [2405] = {.lex_state = 55},
   [2406] = {.lex_state = 0},
-  [2407] = {.lex_state = 45},
-  [2408] = {.lex_state = 45},
+  [2407] = {.lex_state = 46},
+  [2408] = {.lex_state = 46},
   [2409] = {.lex_state = 32},
-  [2410] = {.lex_state = 54},
+  [2410] = {.lex_state = 55},
   [2411] = {.lex_state = 0},
   [2412] = {.lex_state = 0},
 };
@@ -159036,7 +155666,7 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [0] = {.entry = {.count = 0, .reusable = false}},
   [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
   [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(),
-  [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_translation_unit, 0),
+  [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_translation_unit, 0, 0, 0),
   [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(601),
   [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1604),
   [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2368),
@@ -159123,11 +155753,11 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(903),
   [175] = {.entry = {.count = 1, .reusable = false}}, SHIFT(903),
   [177] = {.entry = {.count = 1, .reusable = false}}, SHIFT(480),
-  [179] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elif, 4, .production_id = 38),
-  [181] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elifdef, 3, .production_id = 16),
-  [183] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elif, 3, .production_id = 38),
+  [179] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elif, 4, 0, 38),
+  [181] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elifdef, 3, 0, 16),
+  [183] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elif, 3, 0, 38),
   [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(384),
-  [187] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elifdef, 2, .production_id = 16),
+  [187] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elifdef, 2, 0, 16),
   [189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(393),
   [191] = {.entry = {.count = 1, .reusable = false}}, SHIFT(477),
   [193] = {.entry = {.count = 1, .reusable = false}}, SHIFT(483),
@@ -159141,62 +155771,62 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [209] = {.entry = {.count = 1, .reusable = false}}, SHIFT(427),
   [211] = {.entry = {.count = 1, .reusable = false}}, SHIFT(178),
   [213] = {.entry = {.count = 1, .reusable = false}}, SHIFT(473),
-  [215] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(597),
-  [218] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1609),
-  [221] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2226),
-  [224] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1316),
-  [227] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2),
-  [229] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2227),
-  [232] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2031),
-  [235] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(567),
-  [238] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(743),
-  [241] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(743),
-  [244] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(767),
-  [247] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(566),
-  [250] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(690),
-  [253] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(128),
-  [256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(580),
-  [259] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1150),
-  [262] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1226),
-  [265] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1089),
-  [268] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2216),
-  [271] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2128),
-  [274] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2155),
-  [277] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1119),
-  [280] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(26),
-  [283] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1039),
-  [286] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(971),
-  [289] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(950),
-  [292] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1043),
-  [295] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2025),
-  [298] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1707),
-  [301] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1795),
-  [304] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2058),
-  [307] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2115),
-  [310] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(750),
-  [313] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2291),
-  [316] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2133),
-  [319] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(531),
-  [322] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2395),
-  [325] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(716),
-  [328] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2174),
-  [331] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2173),
-  [334] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2236),
-  [337] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2111),
-  [340] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2165),
-  [343] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(788),
-  [346] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(781),
-  [349] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2284),
-  [352] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2146),
-  [355] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2287),
-  [358] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1743),
-  [361] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(903),
-  [364] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2049),
-  [367] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1809),
-  [370] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(903),
-  [373] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(902),
-  [376] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(689),
-  [379] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2092),
+  [215] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(597),
+  [218] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1609),
+  [221] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2226),
+  [224] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1316),
+  [227] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0),
+  [229] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2227),
+  [232] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2031),
+  [235] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(567),
+  [238] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(743),
+  [241] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(743),
+  [244] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(767),
+  [247] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(566),
+  [250] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(690),
+  [253] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(128),
+  [256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(580),
+  [259] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1150),
+  [262] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1226),
+  [265] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1089),
+  [268] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2216),
+  [271] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2128),
+  [274] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2155),
+  [277] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1119),
+  [280] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(26),
+  [283] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1039),
+  [286] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(971),
+  [289] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(950),
+  [292] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1043),
+  [295] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2025),
+  [298] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1707),
+  [301] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1795),
+  [304] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2058),
+  [307] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2115),
+  [310] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(750),
+  [313] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2291),
+  [316] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2133),
+  [319] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(531),
+  [322] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2395),
+  [325] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(716),
+  [328] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2174),
+  [331] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2173),
+  [334] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2236),
+  [337] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2111),
+  [340] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2165),
+  [343] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(788),
+  [346] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(781),
+  [349] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2284),
+  [352] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2146),
+  [355] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2287),
+  [358] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1743),
+  [361] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(903),
+  [364] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2049),
+  [367] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1809),
+  [370] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(903),
+  [373] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(902),
+  [376] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(689),
+  [379] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2092),
   [382] = {.entry = {.count = 1, .reusable = false}}, SHIFT(592),
   [384] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1608),
   [386] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2215),
@@ -159229,7 +155859,7 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [440] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1598),
   [442] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2317),
   [444] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1334),
-  [446] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_else, 2),
+  [446] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_else, 2, 0, 0),
   [448] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2147),
   [450] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1981),
   [452] = {.entry = {.count = 1, .reusable = false}}, SHIFT(565),
@@ -159255,34 +155885,34 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [492] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2324),
   [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117),
   [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112),
-  [498] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(592),
-  [501] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1608),
-  [504] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2215),
-  [507] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1335),
-  [510] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2207),
-  [513] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2035),
-  [516] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(563),
-  [519] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(692),
-  [522] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(195),
-  [525] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(581),
-  [528] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1145),
-  [531] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1181),
-  [534] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1092),
-  [537] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(35),
-  [540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2),
-  [542] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2099),
-  [545] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2131),
-  [548] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(780),
-  [551] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2272),
-  [554] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2101),
-  [557] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(533),
-  [560] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2333),
-  [563] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(715),
-  [566] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2270),
-  [569] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2269),
-  [572] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2191),
-  [575] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2077),
-  [578] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2355),
+  [498] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(592),
+  [501] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1608),
+  [504] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2215),
+  [507] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1335),
+  [510] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2207),
+  [513] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2035),
+  [516] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(563),
+  [519] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(692),
+  [522] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(195),
+  [525] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(581),
+  [528] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1145),
+  [531] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1181),
+  [534] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1092),
+  [537] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(35),
+  [540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0),
+  [542] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2099),
+  [545] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2131),
+  [548] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(780),
+  [551] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2272),
+  [554] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2101),
+  [557] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(533),
+  [560] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2333),
+  [563] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(715),
+  [566] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2270),
+  [569] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2269),
+  [572] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2191),
+  [575] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2077),
+  [578] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2355),
   [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418),
   [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91),
   [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(440),
@@ -159291,214 +155921,214 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296),
   [593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164),
   [595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310),
-  [597] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(595),
-  [600] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1598),
-  [603] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2317),
-  [606] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1334),
-  [609] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2147),
-  [612] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1981),
-  [615] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(565),
-  [618] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(694),
-  [621] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(189),
-  [624] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(584),
-  [627] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1136),
-  [630] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1231),
-  [633] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(1088),
-  [636] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(37),
-  [639] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2117),
-  [642] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2096),
-  [645] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(796),
-  [648] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2365),
-  [651] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2114),
-  [654] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(530),
-  [657] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2402),
-  [660] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(702),
-  [663] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2293),
-  [666] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2300),
-  [669] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2285),
-  [672] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2094),
-  [675] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2), SHIFT_REPEAT(2324),
+  [597] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(595),
+  [600] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1598),
+  [603] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2317),
+  [606] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1334),
+  [609] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2147),
+  [612] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1981),
+  [615] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(565),
+  [618] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(694),
+  [621] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(189),
+  [624] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(584),
+  [627] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1136),
+  [630] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1231),
+  [633] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(1088),
+  [636] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(37),
+  [639] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2117),
+  [642] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2096),
+  [645] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(796),
+  [648] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2365),
+  [651] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2114),
+  [654] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(530),
+  [657] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2402),
+  [660] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(702),
+  [663] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2293),
+  [666] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2300),
+  [669] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2285),
+  [672] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2094),
+  [675] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_repeat1, 2, 0, 0), SHIFT_REPEAT(2324),
   [678] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190),
   [680] = {.entry = {.count = 1, .reusable = true}}, SHIFT(455),
-  [682] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_else, 1),
+  [682] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_else, 1, 0, 0),
   [684] = {.entry = {.count = 1, .reusable = true}}, SHIFT(471),
   [686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(391),
   [688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378),
-  [690] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_translation_unit, 1),
-  [692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2),
-  [694] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(601),
-  [697] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1604),
-  [700] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2368),
-  [703] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1338),
-  [706] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2160),
-  [709] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1995),
-  [712] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(567),
-  [715] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(743),
-  [718] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(743),
-  [721] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(767),
-  [724] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(564),
-  [727] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(696),
-  [730] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(582),
-  [733] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1140),
-  [736] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1178),
-  [739] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1087),
-  [742] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2216),
-  [745] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2128),
-  [748] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2155),
-  [751] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1119),
-  [754] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(31),
-  [757] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1039),
-  [760] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(971),
-  [763] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(950),
-  [766] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1043),
-  [769] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2025),
-  [772] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1707),
-  [775] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1795),
-  [778] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2143),
-  [781] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2135),
-  [784] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(854),
-  [787] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2208),
-  [790] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2122),
-  [793] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(538),
-  [796] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2237),
-  [799] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(720),
-  [802] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2251),
-  [805] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2336),
-  [808] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2274),
-  [811] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(788),
-  [814] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(781),
-  [817] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2284),
-  [820] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2146),
-  [823] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2287),
-  [826] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1743),
-  [829] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1268),
-  [832] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2049),
-  [835] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1809),
-  [838] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(1268),
-  [841] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(902),
-  [844] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(689),
-  [847] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2), SHIFT_REPEAT(2092),
+  [690] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_translation_unit, 1, 0, 0),
+  [692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0),
+  [694] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(601),
+  [697] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(1604),
+  [700] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2368),
+  [703] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(1338),
+  [706] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2160),
+  [709] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(1995),
+  [712] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(567),
+  [715] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(743),
+  [718] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(743),
+  [721] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(767),
+  [724] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(564),
+  [727] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(696),
+  [730] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(582),
+  [733] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(1140),
+  [736] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(1178),
+  [739] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(1087),
+  [742] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2216),
+  [745] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2128),
+  [748] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2155),
+  [751] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(1119),
+  [754] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(31),
+  [757] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(1039),
+  [760] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(971),
+  [763] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(950),
+  [766] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(1043),
+  [769] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2025),
+  [772] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(1707),
+  [775] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(1795),
+  [778] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2143),
+  [781] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2135),
+  [784] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(854),
+  [787] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2208),
+  [790] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2122),
+  [793] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(538),
+  [796] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2237),
+  [799] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(720),
+  [802] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2251),
+  [805] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2336),
+  [808] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2274),
+  [811] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(788),
+  [814] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(781),
+  [817] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2284),
+  [820] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2146),
+  [823] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2287),
+  [826] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(1743),
+  [829] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(1268),
+  [832] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2049),
+  [835] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(1809),
+  [838] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(1268),
+  [841] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(902),
+  [844] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(689),
+  [847] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_translation_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(2092),
   [850] = {.entry = {.count = 1, .reusable = false}}, SHIFT(596),
-  [852] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 4, .production_id = 8),
-  [854] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 3),
-  [856] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 3, .production_id = 8),
-  [858] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(596),
-  [861] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2),
-  [863] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(567),
-  [866] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(743),
-  [869] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(743),
-  [872] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(767),
-  [875] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(580),
-  [878] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(690),
-  [881] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(128),
-  [884] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1150),
-  [887] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1226),
-  [890] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(971),
-  [893] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2216),
-  [896] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2128),
-  [899] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2155),
-  [902] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(26),
-  [905] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1039),
-  [908] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(950),
-  [911] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1043),
-  [914] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2025),
-  [917] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1707),
-  [920] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1795),
-  [923] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2058),
-  [926] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2115),
-  [929] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2133),
-  [932] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(531),
-  [935] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2395),
-  [938] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(716),
-  [941] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2174),
-  [944] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2173),
-  [947] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2236),
-  [950] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2111),
-  [953] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2165),
-  [956] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(788),
-  [959] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(781),
-  [962] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2284),
-  [965] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2146),
-  [968] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2287),
-  [971] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1743),
-  [974] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(903),
-  [977] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2049),
-  [980] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1809),
-  [983] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(903),
-  [986] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(902),
-  [989] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(689),
-  [992] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2092),
-  [995] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 2),
+  [852] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 4, 0, 8),
+  [854] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 3, 0, 0),
+  [856] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 3, 0, 8),
+  [858] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(596),
+  [861] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0),
+  [863] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(567),
+  [866] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(743),
+  [869] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(743),
+  [872] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(767),
+  [875] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(580),
+  [878] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(690),
+  [881] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(128),
+  [884] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1150),
+  [887] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1226),
+  [890] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(971),
+  [893] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2216),
+  [896] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2128),
+  [899] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2155),
+  [902] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(26),
+  [905] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1039),
+  [908] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(950),
+  [911] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1043),
+  [914] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2025),
+  [917] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1707),
+  [920] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1795),
+  [923] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2058),
+  [926] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2115),
+  [929] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2133),
+  [932] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(531),
+  [935] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2395),
+  [938] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(716),
+  [941] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2174),
+  [944] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2173),
+  [947] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2236),
+  [950] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2111),
+  [953] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2165),
+  [956] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(788),
+  [959] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(781),
+  [962] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2284),
+  [965] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2146),
+  [968] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2287),
+  [971] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1743),
+  [974] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(903),
+  [977] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2049),
+  [980] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1809),
+  [983] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(903),
+  [986] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(902),
+  [989] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(689),
+  [992] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2092),
+  [995] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 2, 0, 0),
   [997] = {.entry = {.count = 1, .reusable = false}}, SHIFT(593),
   [999] = {.entry = {.count = 1, .reusable = false}}, SHIFT(598),
-  [1001] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 3, .production_id = 8),
-  [1003] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(593),
-  [1006] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(584),
-  [1009] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(694),
-  [1012] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(189),
-  [1015] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1136),
-  [1018] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1231),
-  [1021] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(37),
-  [1024] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2117),
-  [1027] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2096),
-  [1030] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2114),
-  [1033] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(530),
-  [1036] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2402),
-  [1039] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(702),
-  [1042] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2293),
-  [1045] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2300),
-  [1048] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2285),
-  [1051] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2094),
-  [1054] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2324),
-  [1057] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 2),
+  [1001] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 3, 0, 8),
+  [1003] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(593),
+  [1006] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(584),
+  [1009] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(694),
+  [1012] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(189),
+  [1015] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1136),
+  [1018] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1231),
+  [1021] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(37),
+  [1024] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2117),
+  [1027] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2096),
+  [1030] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2114),
+  [1033] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(530),
+  [1036] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2402),
+  [1039] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(702),
+  [1042] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2293),
+  [1045] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2300),
+  [1048] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2285),
+  [1051] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2094),
+  [1054] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2324),
+  [1057] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 2, 0, 0),
   [1059] = {.entry = {.count = 1, .reusable = false}}, SHIFT(594),
   [1061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311),
   [1063] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2136),
   [1065] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2253),
-  [1067] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 4, .production_id = 8),
-  [1069] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2),
-  [1071] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(594),
-  [1074] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(582),
-  [1077] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(696),
-  [1080] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(311),
-  [1083] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1140),
-  [1086] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1178),
-  [1089] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(31),
-  [1092] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2143),
-  [1095] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2135),
-  [1098] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2122),
-  [1101] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(538),
-  [1104] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2237),
-  [1107] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(720),
-  [1110] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2251),
-  [1113] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2336),
-  [1116] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2274),
-  [1119] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2136),
-  [1122] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2253),
-  [1125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 3),
-  [1127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(598),
-  [1130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(581),
-  [1133] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(692),
-  [1136] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(195),
-  [1139] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1145),
-  [1142] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(1181),
-  [1145] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(35),
-  [1148] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2099),
-  [1151] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2131),
-  [1154] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2101),
-  [1157] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(533),
-  [1160] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2333),
-  [1163] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(715),
-  [1166] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2270),
-  [1169] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2269),
-  [1172] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2191),
-  [1175] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2077),
-  [1178] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2355),
-  [1181] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(599),
-  [1184] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2139),
-  [1187] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2137),
-  [1190] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2361),
-  [1193] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2), SHIFT_REPEAT(2081),
+  [1067] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 4, 0, 8),
+  [1069] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0),
+  [1071] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(594),
+  [1074] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(582),
+  [1077] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(696),
+  [1080] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(311),
+  [1083] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1140),
+  [1086] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1178),
+  [1089] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(31),
+  [1092] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2143),
+  [1095] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2135),
+  [1098] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2122),
+  [1101] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(538),
+  [1104] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2237),
+  [1107] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(720),
+  [1110] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2251),
+  [1113] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2336),
+  [1116] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2274),
+  [1119] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2136),
+  [1122] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2253),
+  [1125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 3, 0, 0),
+  [1127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(598),
+  [1130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(581),
+  [1133] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(692),
+  [1136] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(195),
+  [1139] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1145),
+  [1142] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1181),
+  [1145] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(35),
+  [1148] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2099),
+  [1151] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2131),
+  [1154] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2101),
+  [1157] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(533),
+  [1160] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2333),
+  [1163] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(715),
+  [1166] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2270),
+  [1169] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2269),
+  [1172] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2191),
+  [1175] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2077),
+  [1178] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2355),
+  [1181] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(599),
+  [1184] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2139),
+  [1187] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2137),
+  [1190] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2361),
+  [1193] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2081),
   [1196] = {.entry = {.count = 1, .reusable = false}}, SHIFT(599),
   [1198] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2139),
   [1200] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2137),
@@ -159509,162 +156139,162 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [1210] = {.entry = {.count = 1, .reusable = false}}, SHIFT(693),
   [1212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(723),
   [1214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2129),
-  [1216] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 26),
-  [1218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 26),
+  [1216] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, 0, 26),
+  [1218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, 0, 26),
   [1220] = {.entry = {.count = 1, .reusable = false}}, SHIFT(532),
-  [1222] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 86),
-  [1224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 86),
-  [1226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 2),
-  [1228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2),
-  [1230] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_break_statement, 2),
-  [1232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 2),
-  [1234] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_continue_statement, 2),
-  [1236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_statement, 2),
-  [1238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4),
-  [1240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4),
-  [1242] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributed_statement, 2),
-  [1244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributed_statement, 2),
-  [1246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4, .production_id = 61),
-  [1248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 61),
-  [1250] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4, .production_id = 63),
-  [1252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 63),
-  [1254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 3),
-  [1256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3),
-  [1258] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4, .production_id = 67),
-  [1260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 67),
-  [1262] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seh_leave_statement, 2),
-  [1264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seh_leave_statement, 2),
-  [1266] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2),
-  [1268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2),
-  [1270] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_compound_statement, 3),
-  [1272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_compound_statement, 3),
-  [1274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_switch_statement, 3, .production_id = 27),
-  [1276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_switch_statement, 3, .production_id = 27),
-  [1278] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 3, .production_id = 27),
-  [1280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 3, .production_id = 27),
-  [1282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3),
-  [1284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3),
-  [1286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_goto_statement, 3, .production_id = 28),
-  [1288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_goto_statement, 3, .production_id = 28),
-  [1290] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_labeled_statement, 3, .production_id = 30),
-  [1292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_labeled_statement, 3, .production_id = 30),
-  [1294] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 5, .production_id = 77),
-  [1296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 5, .production_id = 77),
-  [1298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 3, .production_id = 34),
-  [1300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 34),
-  [1302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 5, .production_id = 46),
-  [1304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 5, .production_id = 46),
-  [1306] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seh_finally_clause, 2, .production_id = 7),
-  [1308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seh_finally_clause, 2, .production_id = 7),
-  [1310] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 2),
-  [1312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 2),
-  [1314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_compound_statement, 2),
-  [1316] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_compound_statement, 2),
-  [1318] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_statement, 5, .production_id = 82),
-  [1320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_statement, 5, .production_id = 82),
-  [1322] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 4, .production_id = 46),
-  [1324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 4, .production_id = 46),
-  [1326] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 7, .production_id = 128),
-  [1328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 7, .production_id = 128),
-  [1330] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 6, .production_id = 118),
-  [1332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 6, .production_id = 118),
-  [1334] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 6, .production_id = 117),
-  [1336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 6, .production_id = 117),
-  [1338] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 6, .production_id = 114),
-  [1340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 6, .production_id = 114),
-  [1342] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seh_except_clause, 3, .production_id = 103),
-  [1344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seh_except_clause, 3, .production_id = 103),
-  [1346] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 1),
-  [1348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 1),
-  [1350] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seh_try_statement, 3, .production_id = 7),
-  [1352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seh_try_statement, 3, .production_id = 7),
-  [1354] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 6, .production_id = 77),
-  [1356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 6, .production_id = 77),
-  [1358] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, .production_id = 91),
-  [1360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 91),
-  [1362] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, .production_id = 54),
-  [1364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, .production_id = 54),
-  [1366] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, .production_id = 92),
-  [1368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 92),
-  [1370] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, .production_id = 97),
-  [1372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 97),
-  [1374] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, .production_id = 96),
-  [1376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 96),
-  [1378] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5),
-  [1380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5),
-  [1382] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef, 4, .production_id = 39),
-  [1384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef, 4, .production_id = 39),
-  [1386] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_function_def, 4, .production_id = 37),
-  [1388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_function_def, 4, .production_id = 37),
-  [1390] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, .production_id = 101),
-  [1392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, .production_id = 101),
-  [1394] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_call, 2, .production_id = 3),
-  [1396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_call, 2, .production_id = 3),
-  [1398] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, .production_id = 102),
-  [1400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, .production_id = 102),
-  [1402] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__empty_declaration, 2),
-  [1404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__empty_declaration, 2),
-  [1406] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, .production_id = 121),
-  [1408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, .production_id = 121),
-  [1410] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, .production_id = 122),
-  [1412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, .production_id = 122),
-  [1414] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, .production_id = 129),
-  [1416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, .production_id = 129),
-  [1418] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, .production_id = 130),
-  [1420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, .production_id = 130),
-  [1422] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, .production_id = 137),
-  [1424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, .production_id = 137),
-  [1426] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, .production_id = 138),
-  [1428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, .production_id = 138),
-  [1430] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 10, .production_id = 142),
-  [1432] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 10, .production_id = 142),
-  [1434] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if, 4, .production_id = 38),
-  [1436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if, 4, .production_id = 38),
-  [1438] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 4, .production_id = 45),
-  [1440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 4, .production_id = 45),
-  [1442] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef, 4, .production_id = 16),
-  [1444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef, 4, .production_id = 16),
-  [1446] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if, 6, .production_id = 98),
-  [1448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if, 6, .production_id = 98),
-  [1450] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 5, .production_id = 75),
-  [1452] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 5, .production_id = 75),
-  [1454] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration_list, 2),
-  [1456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2),
-  [1458] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration_list, 3),
-  [1460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 3),
-  [1462] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_def, 4, .production_id = 36),
-  [1464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_def, 4, .production_id = 36),
-  [1466] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 4, .production_id = 60),
-  [1468] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 4, .production_id = 60),
-  [1470] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 5, .production_id = 76),
-  [1472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 5, .production_id = 76),
-  [1474] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_extension, 5, .production_id = 71),
-  [1476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_extension, 5, .production_id = 71),
-  [1478] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef, 5, .production_id = 70),
-  [1480] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef, 5, .production_id = 70),
-  [1482] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if, 5, .production_id = 38),
-  [1484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if, 5, .production_id = 38),
-  [1486] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if, 5, .production_id = 69),
-  [1488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if, 5, .production_id = 69),
-  [1490] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_function_def, 5, .production_id = 68),
-  [1492] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_function_def, 5, .production_id = 68),
-  [1494] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 3, .production_id = 32),
-  [1496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 3, .production_id = 32),
-  [1498] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_linkage_specification, 3, .production_id = 22),
-  [1500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_linkage_specification, 3, .production_id = 22),
-  [1502] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_call, 3, .production_id = 17),
-  [1504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_call, 3, .production_id = 17),
-  [1506] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef, 3, .production_id = 16),
-  [1508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef, 3, .production_id = 16),
-  [1510] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_def, 3, .production_id = 16),
-  [1512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_def, 3, .production_id = 16),
-  [1514] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_include, 3, .production_id = 15),
-  [1516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_include, 3, .production_id = 15),
+  [1222] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, 0, 86),
+  [1224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, 0, 86),
+  [1226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 2, 0, 0),
+  [1228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2, 0, 0),
+  [1230] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_break_statement, 2, 0, 0),
+  [1232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 2, 0, 0),
+  [1234] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_continue_statement, 2, 0, 0),
+  [1236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_statement, 2, 0, 0),
+  [1238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4, 0, 0),
+  [1240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, 0, 0),
+  [1242] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributed_statement, 2, 0, 0),
+  [1244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributed_statement, 2, 0, 0),
+  [1246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4, 0, 61),
+  [1248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, 0, 61),
+  [1250] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4, 0, 63),
+  [1252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, 0, 63),
+  [1254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 3, 0, 0),
+  [1256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, 0, 0),
+  [1258] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4, 0, 67),
+  [1260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, 0, 67),
+  [1262] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seh_leave_statement, 2, 0, 0),
+  [1264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seh_leave_statement, 2, 0, 0),
+  [1266] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2, 0, 0),
+  [1268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2, 0, 0),
+  [1270] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_compound_statement, 3, 0, 0),
+  [1272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_compound_statement, 3, 0, 0),
+  [1274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_switch_statement, 3, 0, 27),
+  [1276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_switch_statement, 3, 0, 27),
+  [1278] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 3, 0, 27),
+  [1280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 3, 0, 27),
+  [1282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3, 0, 0),
+  [1284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3, 0, 0),
+  [1286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_goto_statement, 3, 0, 28),
+  [1288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_goto_statement, 3, 0, 28),
+  [1290] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_labeled_statement, 3, 0, 30),
+  [1292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_labeled_statement, 3, 0, 30),
+  [1294] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 5, 0, 77),
+  [1296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 5, 0, 77),
+  [1298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 3, 0, 34),
+  [1300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, 0, 34),
+  [1302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 5, 0, 46),
+  [1304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 5, 0, 46),
+  [1306] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seh_finally_clause, 2, 0, 7),
+  [1308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seh_finally_clause, 2, 0, 7),
+  [1310] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 2, 0, 0),
+  [1312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 2, 0, 0),
+  [1314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_compound_statement, 2, 0, 0),
+  [1316] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_compound_statement, 2, 0, 0),
+  [1318] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_statement, 5, 0, 82),
+  [1320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_statement, 5, 0, 82),
+  [1322] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 4, 0, 46),
+  [1324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 4, 0, 46),
+  [1326] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 7, 0, 128),
+  [1328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 7, 0, 128),
+  [1330] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 6, 0, 118),
+  [1332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 6, 0, 118),
+  [1334] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 6, 0, 117),
+  [1336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 6, 0, 117),
+  [1338] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 6, 0, 114),
+  [1340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 6, 0, 114),
+  [1342] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seh_except_clause, 3, 0, 103),
+  [1344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seh_except_clause, 3, 0, 103),
+  [1346] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 1, 0, 0),
+  [1348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 1, 0, 0),
+  [1350] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seh_try_statement, 3, 0, 7),
+  [1352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seh_try_statement, 3, 0, 7),
+  [1354] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 6, 0, 77),
+  [1356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 6, 0, 77),
+  [1358] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, 0, 91),
+  [1360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, 0, 91),
+  [1362] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, 0, 54),
+  [1364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, 0, 54),
+  [1366] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, 0, 92),
+  [1368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, 0, 92),
+  [1370] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, 0, 97),
+  [1372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, 0, 97),
+  [1374] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, 0, 96),
+  [1376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, 0, 96),
+  [1378] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, 0, 0),
+  [1380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, 0, 0),
+  [1382] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef, 4, 0, 39),
+  [1384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef, 4, 0, 39),
+  [1386] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_function_def, 4, 0, 37),
+  [1388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_function_def, 4, 0, 37),
+  [1390] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 101),
+  [1392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 101),
+  [1394] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_call, 2, 0, 3),
+  [1396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_call, 2, 0, 3),
+  [1398] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 102),
+  [1400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 102),
+  [1402] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__empty_declaration, 2, 0, 0),
+  [1404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__empty_declaration, 2, 0, 0),
+  [1406] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 121),
+  [1408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 121),
+  [1410] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 122),
+  [1412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 122),
+  [1414] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 129),
+  [1416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 129),
+  [1418] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 130),
+  [1420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 130),
+  [1422] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 137),
+  [1424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 137),
+  [1426] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 138),
+  [1428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 138),
+  [1430] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 10, 0, 142),
+  [1432] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 10, 0, 142),
+  [1434] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if, 4, 0, 38),
+  [1436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if, 4, 0, 38),
+  [1438] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 4, 0, 45),
+  [1440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 4, 0, 45),
+  [1442] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef, 4, 0, 16),
+  [1444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef, 4, 0, 16),
+  [1446] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if, 6, 0, 98),
+  [1448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if, 6, 0, 98),
+  [1450] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 5, 0, 75),
+  [1452] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 5, 0, 75),
+  [1454] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration_list, 2, 0, 0),
+  [1456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, 0, 0),
+  [1458] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration_list, 3, 0, 0),
+  [1460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 3, 0, 0),
+  [1462] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_def, 4, 0, 36),
+  [1464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_def, 4, 0, 36),
+  [1466] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 4, 0, 60),
+  [1468] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 4, 0, 60),
+  [1470] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 5, 0, 76),
+  [1472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 5, 0, 76),
+  [1474] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_extension, 5, 0, 71),
+  [1476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_extension, 5, 0, 71),
+  [1478] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef, 5, 0, 70),
+  [1480] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef, 5, 0, 70),
+  [1482] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if, 5, 0, 38),
+  [1484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if, 5, 0, 38),
+  [1486] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if, 5, 0, 69),
+  [1488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if, 5, 0, 69),
+  [1490] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_function_def, 5, 0, 68),
+  [1492] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_function_def, 5, 0, 68),
+  [1494] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 3, 0, 32),
+  [1496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 3, 0, 32),
+  [1498] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_linkage_specification, 3, 0, 22),
+  [1500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_linkage_specification, 3, 0, 22),
+  [1502] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_call, 3, 0, 17),
+  [1504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_call, 3, 0, 17),
+  [1506] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef, 3, 0, 16),
+  [1508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef, 3, 0, 16),
+  [1510] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_def, 3, 0, 16),
+  [1512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_def, 3, 0, 16),
+  [1514] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_include, 3, 0, 15),
+  [1516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_include, 3, 0, 15),
   [1518] = {.entry = {.count = 1, .reusable = false}}, SHIFT(529),
   [1520] = {.entry = {.count = 1, .reusable = false}}, SHIFT(537),
   [1522] = {.entry = {.count = 1, .reusable = false}}, SHIFT(541),
-  [1524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__top_level_expression_statement, 2),
-  [1526] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__top_level_expression_statement, 2),
+  [1524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__top_level_expression_statement, 2, 0, 0),
+  [1526] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__top_level_expression_statement, 2, 0, 0),
   [1528] = {.entry = {.count = 1, .reusable = false}}, SHIFT(556),
   [1530] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1015),
   [1532] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2325),
@@ -159678,62 +156308,62 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [1548] = {.entry = {.count = 1, .reusable = false}}, SHIFT(587),
   [1550] = {.entry = {.count = 1, .reusable = false}}, SHIFT(646),
   [1552] = {.entry = {.count = 1, .reusable = false}}, SHIFT(624),
-  [1554] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elif_in_field_declaration_list, 4, .production_id = 38),
+  [1554] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elif_in_field_declaration_list, 4, 0, 38),
   [1556] = {.entry = {.count = 1, .reusable = false}}, SHIFT(637),
   [1558] = {.entry = {.count = 1, .reusable = false}}, SHIFT(631),
   [1560] = {.entry = {.count = 1, .reusable = false}}, SHIFT(619),
   [1562] = {.entry = {.count = 1, .reusable = false}}, SHIFT(620),
   [1564] = {.entry = {.count = 1, .reusable = false}}, SHIFT(666),
   [1566] = {.entry = {.count = 1, .reusable = false}}, SHIFT(632),
-  [1568] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elif_in_field_declaration_list, 3, .production_id = 38),
-  [1570] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elifdef_in_field_declaration_list, 3, .production_id = 16),
+  [1568] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elif_in_field_declaration_list, 3, 0, 38),
+  [1570] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elifdef_in_field_declaration_list, 3, 0, 16),
   [1572] = {.entry = {.count = 1, .reusable = false}}, SHIFT(649),
-  [1574] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elifdef_in_field_declaration_list, 2, .production_id = 16),
+  [1574] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_elifdef_in_field_declaration_list, 2, 0, 16),
   [1576] = {.entry = {.count = 1, .reusable = false}}, SHIFT(614),
   [1578] = {.entry = {.count = 1, .reusable = false}}, SHIFT(653),
-  [1580] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1015),
-  [1583] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(2325),
-  [1586] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1313),
-  [1589] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2),
-  [1591] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(2184),
-  [1594] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(2140),
-  [1597] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(587),
-  [1600] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(950),
-  [1603] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(971),
-  [1606] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(2216),
-  [1609] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(2129),
-  [1612] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(2155),
-  [1615] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1039),
-  [1618] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1043),
-  [1621] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(2025),
-  [1624] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1707),
-  [1627] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1795),
-  [1630] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(689),
-  [1633] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(2092),
+  [1580] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(1015),
+  [1583] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(2325),
+  [1586] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(1313),
+  [1589] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0),
+  [1591] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(2184),
+  [1594] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(2140),
+  [1597] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(587),
+  [1600] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(950),
+  [1603] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(971),
+  [1606] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(2216),
+  [1609] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(2129),
+  [1612] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(2155),
+  [1615] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(1039),
+  [1618] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(1043),
+  [1621] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(2025),
+  [1624] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(1707),
+  [1627] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(1795),
+  [1630] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(689),
+  [1633] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(2092),
   [1636] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2326),
   [1638] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1321),
-  [1640] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_else_in_field_declaration_list, 2),
+  [1640] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_else_in_field_declaration_list, 2, 0, 0),
   [1642] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2254),
   [1644] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2100),
   [1646] = {.entry = {.count = 1, .reusable = false}}, SHIFT(586),
-  [1648] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(2326),
-  [1651] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1321),
-  [1654] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(2254),
-  [1657] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(2100),
-  [1660] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(586),
-  [1663] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_else_in_field_declaration_list, 1),
+  [1648] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(2326),
+  [1651] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(1321),
+  [1654] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(2254),
+  [1657] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(2100),
+  [1660] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(586),
+  [1663] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_else_in_field_declaration_list, 1, 0, 0),
   [1665] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2278),
   [1667] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1361),
   [1669] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2391),
   [1671] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2069),
   [1673] = {.entry = {.count = 1, .reusable = false}}, SHIFT(585),
   [1675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1026),
-  [1677] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(2278),
-  [1680] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(1361),
-  [1683] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(2391),
-  [1686] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(2069),
-  [1689] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2), SHIFT_REPEAT(585),
-  [1692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2),
+  [1677] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(2278),
+  [1680] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(1361),
+  [1683] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(2391),
+  [1686] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(2069),
+  [1689] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0), SHIFT_REPEAT(585),
+  [1692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_if_in_field_declaration_list_repeat1, 2, 0, 0),
   [1694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1022),
   [1696] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1071),
   [1698] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
@@ -159744,10 +156374,10 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [1708] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1061),
   [1710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40),
   [1712] = {.entry = {.count = 1, .reusable = false}}, SHIFT(863),
-  [1714] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sizeof_expression, 4, .production_id = 56),
+  [1714] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sizeof_expression, 4, 0, 56),
   [1716] = {.entry = {.count = 1, .reusable = false}}, SHIFT(850),
   [1718] = {.entry = {.count = 1, .reusable = true}}, SHIFT(850),
-  [1720] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sizeof_expression, 4, .production_id = 56),
+  [1720] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sizeof_expression, 4, 0, 56),
   [1722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(685),
   [1724] = {.entry = {.count = 1, .reusable = false}}, SHIFT(858),
   [1726] = {.entry = {.count = 1, .reusable = false}}, SHIFT(830),
@@ -159770,109 +156400,109 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [1760] = {.entry = {.count = 1, .reusable = false}}, SHIFT(957),
   [1762] = {.entry = {.count = 1, .reusable = false}}, SHIFT(787),
   [1764] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2176),
-  [1766] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(949),
-  [1769] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(567),
-  [1772] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(743),
-  [1775] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(743),
-  [1778] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(767),
-  [1781] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(189),
-  [1784] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2119),
-  [1787] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(37),
-  [1790] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2117),
-  [1793] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2096),
-  [1796] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(796),
-  [1799] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2365),
-  [1802] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2114),
-  [1805] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(530),
-  [1808] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2402),
-  [1811] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(702),
-  [1814] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2293),
-  [1817] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2300),
-  [1820] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2285),
-  [1823] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2094),
-  [1826] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2324),
-  [1829] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(788),
-  [1832] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(781),
-  [1835] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2284),
-  [1838] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2146),
-  [1841] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2287),
-  [1844] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1743),
-  [1847] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(903),
-  [1850] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2049),
-  [1853] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(1809),
-  [1856] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(903),
-  [1859] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(902),
-  [1862] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(959),
-  [1865] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(128),
-  [1868] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(26),
-  [1871] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2058),
-  [1874] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2115),
-  [1877] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(750),
-  [1880] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2291),
-  [1883] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2133),
-  [1886] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(531),
-  [1889] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2395),
-  [1892] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(716),
-  [1895] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2174),
-  [1898] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2173),
-  [1901] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2236),
-  [1904] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2111),
-  [1907] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2165),
-  [1910] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(951),
-  [1913] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(195),
-  [1916] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(35),
-  [1919] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2099),
-  [1922] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2131),
-  [1925] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(780),
-  [1928] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2272),
-  [1931] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2101),
-  [1934] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(533),
-  [1937] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2333),
-  [1940] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(715),
-  [1943] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2270),
-  [1946] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2269),
-  [1949] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2191),
-  [1952] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2077),
-  [1955] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2355),
-  [1958] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(954),
-  [1961] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(311),
-  [1964] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(31),
-  [1967] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2143),
-  [1970] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2135),
-  [1973] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(854),
-  [1976] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2208),
-  [1979] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2122),
-  [1982] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(538),
-  [1985] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2237),
-  [1988] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(720),
-  [1991] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2251),
-  [1994] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2336),
-  [1997] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2274),
-  [2000] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2136),
-  [2003] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2253),
-  [2006] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(957),
-  [2009] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2139),
-  [2012] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(787),
-  [2015] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2176),
-  [2018] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2137),
-  [2021] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2361),
-  [2024] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT(2081),
+  [1766] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(949),
+  [1769] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(567),
+  [1772] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(743),
+  [1775] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(743),
+  [1778] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(767),
+  [1781] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(189),
+  [1784] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2119),
+  [1787] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(37),
+  [1790] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2117),
+  [1793] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2096),
+  [1796] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(796),
+  [1799] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2365),
+  [1802] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2114),
+  [1805] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(530),
+  [1808] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2402),
+  [1811] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(702),
+  [1814] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2293),
+  [1817] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2300),
+  [1820] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2285),
+  [1823] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2094),
+  [1826] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2324),
+  [1829] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(788),
+  [1832] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(781),
+  [1835] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2284),
+  [1838] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2146),
+  [1841] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2287),
+  [1844] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(1743),
+  [1847] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(903),
+  [1850] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2049),
+  [1853] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(1809),
+  [1856] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(903),
+  [1859] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(902),
+  [1862] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(959),
+  [1865] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(128),
+  [1868] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(26),
+  [1871] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2058),
+  [1874] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2115),
+  [1877] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(750),
+  [1880] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2291),
+  [1883] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2133),
+  [1886] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(531),
+  [1889] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2395),
+  [1892] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(716),
+  [1895] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2174),
+  [1898] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2173),
+  [1901] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2236),
+  [1904] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2111),
+  [1907] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2165),
+  [1910] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(951),
+  [1913] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(195),
+  [1916] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(35),
+  [1919] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2099),
+  [1922] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2131),
+  [1925] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(780),
+  [1928] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2272),
+  [1931] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2101),
+  [1934] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(533),
+  [1937] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2333),
+  [1940] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(715),
+  [1943] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2270),
+  [1946] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2269),
+  [1949] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2191),
+  [1952] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2077),
+  [1955] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2355),
+  [1958] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(954),
+  [1961] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(311),
+  [1964] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(31),
+  [1967] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2143),
+  [1970] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2135),
+  [1973] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(854),
+  [1976] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2208),
+  [1979] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2122),
+  [1982] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(538),
+  [1985] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2237),
+  [1988] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(720),
+  [1991] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2251),
+  [1994] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2336),
+  [1997] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2274),
+  [2000] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2136),
+  [2003] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2253),
+  [2006] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(957),
+  [2009] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2139),
+  [2012] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(787),
+  [2015] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2176),
+  [2018] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2137),
+  [2021] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2361),
+  [2024] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT(2081),
   [2027] = {.entry = {.count = 1, .reusable = false}}, SHIFT(779),
   [2029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(779),
   [2031] = {.entry = {.count = 1, .reusable = false}}, SHIFT(807),
-  [2033] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1), SHIFT(1015),
+  [2033] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0), SHIFT(1015),
   [2036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1869),
-  [2038] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1),
-  [2040] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1), SHIFT(950),
-  [2043] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1), SHIFT(971),
-  [2046] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1), SHIFT(2216),
-  [2049] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_repeat1, 1), SHIFT(2129),
-  [2052] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1), SHIFT(2155),
-  [2055] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1), SHIFT(1039),
-  [2058] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1), SHIFT(1043),
-  [2061] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1), SHIFT(2025),
-  [2064] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1), SHIFT(1707),
-  [2067] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1), SHIFT(1795),
+  [2038] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0),
+  [2040] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0), SHIFT(950),
+  [2043] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0), SHIFT(971),
+  [2046] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0), SHIFT(2216),
+  [2049] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0), SHIFT(2129),
+  [2052] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0), SHIFT(2155),
+  [2055] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0), SHIFT(1039),
+  [2058] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0), SHIFT(1043),
+  [2061] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0), SHIFT(2025),
+  [2064] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0), SHIFT(1707),
+  [2067] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0), SHIFT(1795),
   [2070] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1875),
   [2072] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1842),
   [2074] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1866),
@@ -159887,21 +156517,21 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [2092] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1053),
   [2094] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1069),
   [2096] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1064),
-  [2098] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute_declaration, 3),
-  [2100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_declaration, 3),
+  [2098] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute_declaration, 3, 0, 0),
+  [2100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_declaration, 3, 0, 0),
   [2102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(927),
-  [2104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute_declaration, 4),
-  [2106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_declaration, 4),
+  [2104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute_declaration, 4, 0, 0),
+  [2106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_declaration, 4, 0, 0),
   [2108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(798),
   [2110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(798),
   [2112] = {.entry = {.count = 1, .reusable = false}}, SHIFT(801),
-  [2114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_specifier, 1, .production_id = 1),
-  [2116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_not_binary, 1),
-  [2118] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym__type_specifier, 1, .production_id = 1), REDUCE(sym__expression_not_binary, 1), SHIFT(1198),
-  [2122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression_not_binary, 1),
-  [2124] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type_specifier, 1, .production_id = 1), REDUCE(sym__expression_not_binary, 1),
-  [2127] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type_specifier, 1, .production_id = 1), REDUCE(sym__expression_not_binary, 1),
-  [2130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_specifier, 1, .production_id = 1),
+  [2114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_specifier, 1, 0, 1),
+  [2116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_not_binary, 1, 0, 0),
+  [2118] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym__type_specifier, 1, 0, 1), REDUCE(sym__expression_not_binary, 1, 0, 0), SHIFT(1198),
+  [2122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression_not_binary, 1, 0, 0),
+  [2124] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type_specifier, 1, 0, 1), REDUCE(sym__expression_not_binary, 1, 0, 0),
+  [2127] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type_specifier, 1, 0, 1), REDUCE(sym__expression_not_binary, 1, 0, 0),
+  [2130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_specifier, 1, 0, 1),
   [2132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(513),
   [2134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1029),
   [2136] = {.entry = {.count = 1, .reusable = false}}, SHIFT(747),
@@ -159915,58 +156545,58 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [2152] = {.entry = {.count = 1, .reusable = false}}, SHIFT(802),
   [2154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(802),
   [2156] = {.entry = {.count = 1, .reusable = false}}, SHIFT(837),
-  [2158] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declaration_modifiers, 1), REDUCE(aux_sym_attributed_declarator_repeat1, 1),
-  [2161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 1),
-  [2163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 1),
-  [2165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration_modifiers, 1),
-  [2167] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__declaration_modifiers, 1), REDUCE(aux_sym_attributed_declarator_repeat1, 1),
-  [2170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_field_declaration_list, 6, .production_id = 98),
-  [2172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_field_declaration_list, 6, .production_id = 98),
-  [2174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 5, .production_id = 46),
-  [2176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 5, .production_id = 46),
-  [2178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 3, .production_id = 72),
-  [2180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 3, .production_id = 72),
-  [2182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 5, .production_id = 70),
-  [2184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 5, .production_id = 70),
-  [2186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_field_declaration_list, 5, .production_id = 38),
-  [2188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_field_declaration_list, 5, .production_id = 38),
-  [2190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 4, .production_id = 72),
-  [2192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 4, .production_id = 72),
-  [2194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 2, .production_id = 40),
-  [2196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 2, .production_id = 40),
-  [2198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 4, .production_id = 46),
-  [2200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 4, .production_id = 46),
-  [2202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_field_declaration_list, 5, .production_id = 69),
-  [2204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_field_declaration_list, 5, .production_id = 69),
-  [2206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_field_declaration_list, 4, .production_id = 38),
-  [2208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_field_declaration_list, 4, .production_id = 38),
-  [2210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 3, .production_id = 16),
-  [2212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 3, .production_id = 16),
-  [2214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 3, .production_id = 80),
-  [2216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 3, .production_id = 80),
-  [2218] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 3, .production_id = 40),
-  [2220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 3, .production_id = 40),
-  [2222] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 4, .production_id = 39),
-  [2224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 4, .production_id = 39),
-  [2226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 4, .production_id = 16),
-  [2228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 4, .production_id = 16),
-  [2230] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 4, .production_id = 80),
-  [2232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 4, .production_id = 80),
-  [2234] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 2),
-  [2236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 2),
-  [2238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 3),
-  [2240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 3),
+  [2158] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declaration_modifiers, 1, 0, 0), REDUCE(aux_sym_attributed_declarator_repeat1, 1, 0, 0),
+  [2161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 1, 0, 0),
+  [2163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 1, 0, 0),
+  [2165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration_modifiers, 1, 0, 0),
+  [2167] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__declaration_modifiers, 1, 0, 0), REDUCE(aux_sym_attributed_declarator_repeat1, 1, 0, 0),
+  [2170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_field_declaration_list, 6, 0, 98),
+  [2172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_field_declaration_list, 6, 0, 98),
+  [2174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 5, 0, 46),
+  [2176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 5, 0, 46),
+  [2178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 3, 0, 72),
+  [2180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 3, 0, 72),
+  [2182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 5, 0, 70),
+  [2184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 5, 0, 70),
+  [2186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_field_declaration_list, 5, 0, 38),
+  [2188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_field_declaration_list, 5, 0, 38),
+  [2190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 4, 0, 72),
+  [2192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 4, 0, 72),
+  [2194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 2, 0, 40),
+  [2196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 2, 0, 40),
+  [2198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 4, 0, 46),
+  [2200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 4, 0, 46),
+  [2202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_field_declaration_list, 5, 0, 69),
+  [2204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_field_declaration_list, 5, 0, 69),
+  [2206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_field_declaration_list, 4, 0, 38),
+  [2208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_field_declaration_list, 4, 0, 38),
+  [2210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 3, 0, 16),
+  [2212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 3, 0, 16),
+  [2214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 3, 0, 80),
+  [2216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 3, 0, 80),
+  [2218] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 3, 0, 40),
+  [2220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 3, 0, 40),
+  [2222] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 4, 0, 39),
+  [2224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 4, 0, 39),
+  [2226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 4, 0, 16),
+  [2228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_field_declaration_list, 4, 0, 16),
+  [2230] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 4, 0, 80),
+  [2232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 4, 0, 80),
+  [2234] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 2, 0, 0),
+  [2236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 2, 0, 0),
+  [2238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 3, 0, 0),
+  [2240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 3, 0, 0),
   [2242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(571),
   [2244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(734),
   [2246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(820),
   [2248] = {.entry = {.count = 1, .reusable = false}}, SHIFT(961),
   [2250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1691),
   [2252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(803),
-  [2254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 2),
-  [2256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 2), SHIFT_REPEAT(673),
-  [2259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_repeat1, 2),
-  [2261] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 2), SHIFT_REPEAT(689),
-  [2264] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 2), SHIFT_REPEAT(2092),
+  [2254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 2, 0, 0),
+  [2256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(673),
+  [2259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_repeat1, 2, 0, 0),
+  [2261] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(689),
+  [2264] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(2092),
   [2267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(730),
   [2269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1626),
   [2271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(731),
@@ -159992,20 +156622,20 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [2311] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2286),
   [2313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(907),
   [2315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(900),
-  [2317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_layout_qualifiers, 4),
-  [2319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_layout_qualifiers, 4),
-  [2321] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_extension_storage_class, 1),
-  [2323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extension_storage_class, 1),
-  [2325] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1), SHIFT(2246),
-  [2328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_repeat1, 1),
-  [2330] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_layout_specification, 2),
-  [2332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_layout_specification, 2),
-  [2334] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1), SHIFT(2255),
-  [2337] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1), SHIFT(2319),
-  [2340] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1), SHIFT(2347),
-  [2343] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_layout_qualifiers, 3),
-  [2345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_layout_qualifiers, 3),
-  [2347] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1), SHIFT(2343),
+  [2317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_layout_qualifiers, 4, 0, 0),
+  [2319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_layout_qualifiers, 4, 0, 0),
+  [2321] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_extension_storage_class, 1, 0, 0),
+  [2323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extension_storage_class, 1, 0, 0),
+  [2325] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0), SHIFT(2246),
+  [2328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0),
+  [2330] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_layout_specification, 2, 0, 0),
+  [2332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_layout_specification, 2, 0, 0),
+  [2334] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0), SHIFT(2255),
+  [2337] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0), SHIFT(2319),
+  [2340] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0), SHIFT(2347),
+  [2343] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_layout_qualifiers, 3, 0, 0),
+  [2345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_layout_qualifiers, 3, 0, 0),
+  [2347] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_declaration_repeat1, 1, 0, 0), SHIFT(2343),
   [2350] = {.entry = {.count = 1, .reusable = false}}, SHIFT(888),
   [2352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1084),
   [2354] = {.entry = {.count = 1, .reusable = false}}, SHIFT(754),
@@ -160016,11 +156646,11 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [2364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(577),
   [2366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(851),
   [2368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(823),
-  [2370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 2),
+  [2370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 2, 0, 0),
   [2372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(769),
   [2374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(809),
-  [2376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 3, .production_id = 55),
-  [2378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 2, .production_id = 55),
+  [2376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 3, 0, 55),
+  [2378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 2, 0, 55),
   [2380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(752),
   [2382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(708),
   [2384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(572),
@@ -160030,14 +156660,14 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [2392] = {.entry = {.count = 1, .reusable = false}}, SHIFT(926),
   [2394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(573),
   [2396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(800),
-  [2398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 3, .production_id = 38),
+  [2398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 3, 0, 38),
   [2400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188),
   [2402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(707),
-  [2404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 3, .production_id = 85),
+  [2404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 3, 0, 85),
   [2406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(704),
   [2408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(828),
   [2410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(846),
-  [2412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 4, .production_id = 108),
+  [2412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 4, 0, 108),
   [2414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(795),
   [2416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(569),
   [2418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(804),
@@ -160059,129 +156689,129 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [2450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(570),
   [2452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1029),
   [2454] = {.entry = {.count = 1, .reusable = false}}, SHIFT(861),
-  [2456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_string, 3),
-  [2458] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_string, 3),
-  [2460] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_concatenated_string_repeat1, 2), SHIFT_REPEAT(861),
-  [2463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2),
-  [2465] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_string_repeat1, 2),
-  [2467] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2), SHIFT_REPEAT(1809),
+  [2456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_string, 3, 0, 0),
+  [2458] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_string, 3, 0, 0),
+  [2460] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(861),
+  [2463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0),
+  [2465] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0),
+  [2467] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1809),
   [2470] = {.entry = {.count = 1, .reusable = false}}, SHIFT(860),
-  [2472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_string, 2),
-  [2474] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_string, 2),
-  [2476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 5, .production_id = 89),
-  [2478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 5, .production_id = 89),
-  [2480] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 8, .production_id = 134),
-  [2482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 8, .production_id = 134),
-  [2484] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 5, .production_id = 88),
-  [2486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 5, .production_id = 88),
-  [2488] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 9, .production_id = 141),
-  [2490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 9, .production_id = 141),
-  [2492] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 6, .production_id = 112),
-  [2494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 6, .production_id = 112),
-  [2496] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 8, .production_id = 135),
-  [2498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 8, .production_id = 135),
-  [2500] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 4, .production_id = 57),
-  [2502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 4, .production_id = 57),
-  [2504] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 7, .production_id = 126),
-  [2506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 7, .production_id = 126),
-  [2508] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 7, .production_id = 127),
-  [2510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 7, .production_id = 127),
-  [2512] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 6, .production_id = 111),
-  [2514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 6, .production_id = 111),
-  [2516] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_parameter_declaration_repeat1, 2),
-  [2518] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_parameter_declaration_repeat1, 2), SHIFT_REPEAT(888),
-  [2521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_declaration_repeat1, 2),
-  [2523] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_parameter_declaration_repeat1, 2), SHIFT_REPEAT(2102),
+  [2472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_string, 2, 0, 0),
+  [2474] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_string, 2, 0, 0),
+  [2476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 5, 0, 89),
+  [2478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 5, 0, 89),
+  [2480] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 8, 0, 134),
+  [2482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 8, 0, 134),
+  [2484] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 5, 0, 88),
+  [2486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 5, 0, 88),
+  [2488] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 9, 0, 141),
+  [2490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 9, 0, 141),
+  [2492] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 6, 0, 112),
+  [2494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 6, 0, 112),
+  [2496] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 8, 0, 135),
+  [2498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 8, 0, 135),
+  [2500] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 4, 0, 57),
+  [2502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 4, 0, 57),
+  [2504] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 7, 0, 126),
+  [2506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 7, 0, 126),
+  [2508] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 7, 0, 127),
+  [2510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 7, 0, 127),
+  [2512] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_gnu_asm_expression, 6, 0, 111),
+  [2514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_expression, 6, 0, 111),
+  [2516] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_parameter_declaration_repeat1, 2, 0, 0),
+  [2518] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_parameter_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(888),
+  [2521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_declaration_repeat1, 2, 0, 0),
+  [2523] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_parameter_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(2102),
   [2526] = {.entry = {.count = 1, .reusable = false}}, SHIFT(862),
-  [2528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__string, 1),
-  [2530] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__string, 1),
-  [2532] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2),
-  [2534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2),
-  [2536] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2), SHIFT_REPEAT(950),
-  [2539] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2), SHIFT_REPEAT(971),
-  [2542] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2), SHIFT_REPEAT(2216),
-  [2545] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2), SHIFT_REPEAT(2129),
-  [2548] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2), SHIFT_REPEAT(2155),
-  [2551] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3),
-  [2553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3),
-  [2555] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subscript_expression, 4, .production_id = 65),
-  [2557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subscript_expression, 4, .production_id = 65),
-  [2559] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_generic_expression, 9),
-  [2561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_expression, 9),
-  [2563] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_char_literal, 3),
-  [2565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_char_literal, 3),
-  [2567] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_expression, 3, .production_id = 35),
-  [2569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_expression, 3, .production_id = 35),
-  [2571] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_offsetof_expression, 6, .production_id = 109),
-  [2573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_offsetof_expression, 6, .production_id = 109),
-  [2575] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_initializer_list, 4),
-  [2577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_list, 4),
-  [2579] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_null, 1),
-  [2581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_null, 1),
-  [2583] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1),
-  [2585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1),
-  [2587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call_expression, 2, .production_id = 12),
-  [2589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call_expression, 2, .production_id = 12),
-  [2591] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_initializer_list, 2),
-  [2593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_list, 2),
-  [2595] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_generic_expression, 8),
-  [2597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_expression, 8),
-  [2599] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_initializer_list, 5),
-  [2601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_list, 5),
-  [2603] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_initializer_list, 3),
-  [2605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_list, 3),
-  [2607] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alignof_expression, 4, .production_id = 56),
-  [2609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alignof_expression, 4, .production_id = 56),
-  [2611] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_compound_literal_expression, 4, .production_id = 43),
-  [2613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_compound_literal_expression, 4, .production_id = 43),
-  [2615] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_update_expression, 2, .production_id = 11),
-  [2617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_update_expression, 2, .production_id = 11),
-  [2619] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3),
-  [2621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3),
-  [2623] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cast_expression, 4, .production_id = 43),
-  [2625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cast_expression, 4, .production_id = 43),
+  [2528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__string, 1, 0, 0),
+  [2530] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__string, 1, 0, 0),
+  [2532] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2, 0, 0),
+  [2534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2, 0, 0),
+  [2536] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2, 0, 0), SHIFT_REPEAT(950),
+  [2539] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2, 0, 0), SHIFT_REPEAT(971),
+  [2542] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2, 0, 0), SHIFT_REPEAT(2216),
+  [2545] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2, 0, 0), SHIFT_REPEAT(2129),
+  [2548] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declaration_specifiers_repeat1, 2, 0, 0), SHIFT_REPEAT(2155),
+  [2551] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 0),
+  [2553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 0),
+  [2555] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subscript_expression, 4, 0, 65),
+  [2557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subscript_expression, 4, 0, 65),
+  [2559] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_generic_expression, 9, 0, 0),
+  [2561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_expression, 9, 0, 0),
+  [2563] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_char_literal, 3, 0, 0),
+  [2565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_char_literal, 3, 0, 0),
+  [2567] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_expression, 3, 0, 35),
+  [2569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_expression, 3, 0, 35),
+  [2571] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_offsetof_expression, 6, 0, 109),
+  [2573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_offsetof_expression, 6, 0, 109),
+  [2575] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_initializer_list, 4, 0, 0),
+  [2577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_list, 4, 0, 0),
+  [2579] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_null, 1, 0, 0),
+  [2581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_null, 1, 0, 0),
+  [2583] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1, 0, 0),
+  [2585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1, 0, 0),
+  [2587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call_expression, 2, 0, 12),
+  [2589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call_expression, 2, 0, 12),
+  [2591] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_initializer_list, 2, 0, 0),
+  [2593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_list, 2, 0, 0),
+  [2595] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_generic_expression, 8, 0, 0),
+  [2597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_expression, 8, 0, 0),
+  [2599] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_initializer_list, 5, 0, 0),
+  [2601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_list, 5, 0, 0),
+  [2603] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_initializer_list, 3, 0, 0),
+  [2605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_list, 3, 0, 0),
+  [2607] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alignof_expression, 4, 0, 56),
+  [2609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alignof_expression, 4, 0, 56),
+  [2611] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_compound_literal_expression, 4, 0, 43),
+  [2613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_compound_literal_expression, 4, 0, 43),
+  [2615] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_update_expression, 2, 0, 11),
+  [2617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_update_expression, 2, 0, 11),
+  [2619] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 0),
+  [2621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 0),
+  [2623] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cast_expression, 4, 0, 43),
+  [2625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cast_expression, 4, 0, 43),
   [2627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(700),
   [2629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(847),
   [2631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(913),
   [2633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2392),
-  [2635] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pointer_expression, 2, .production_id = 4),
-  [2637] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_expression, 2, .production_id = 4),
-  [2639] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4),
-  [2641] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4),
-  [2643] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 29),
-  [2645] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 29),
-  [2647] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_update_expression, 2, .production_id = 4),
-  [2649] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_update_expression, 2, .production_id = 4),
-  [2651] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 2),
-  [2653] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 2),
-  [2655] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5),
-  [2657] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5),
-  [2659] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sizeof_expression, 2, .production_id = 8),
-  [2661] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sizeof_expression, 2, .production_id = 8),
-  [2663] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2, .production_id = 4),
-  [2665] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, .production_id = 4),
-  [2667] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute_specifier, 4),
-  [2669] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_specifier, 4),
+  [2635] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pointer_expression, 2, 0, 4),
+  [2637] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_expression, 2, 0, 4),
+  [2639] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 0),
+  [2641] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 0),
+  [2643] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, 0, 29),
+  [2645] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, 0, 29),
+  [2647] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_update_expression, 2, 0, 4),
+  [2649] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_update_expression, 2, 0, 4),
+  [2651] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 2, 0, 0),
+  [2653] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 2, 0, 0),
+  [2655] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5, 0, 0),
+  [2657] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5, 0, 0),
+  [2659] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sizeof_expression, 2, 0, 8),
+  [2661] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sizeof_expression, 2, 0, 8),
+  [2663] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2, 0, 4),
+  [2665] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, 0, 4),
+  [2667] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute_specifier, 4, 0, 0),
+  [2669] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_specifier, 4, 0, 0),
   [2671] = {.entry = {.count = 1, .reusable = false}}, SHIFT(844),
   [2673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(844),
-  [2675] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__type_definition_type_repeat1, 2),
-  [2677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__type_definition_type_repeat1, 2),
-  [2679] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__type_definition_type_repeat1, 2), SHIFT_REPEAT(961),
-  [2682] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_qualifier, 1),
-  [2684] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_qualifier, 1),
-  [2686] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 3, .production_id = 24),
-  [2688] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 3, .production_id = 24),
+  [2675] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__type_definition_type_repeat1, 2, 0, 0),
+  [2677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__type_definition_type_repeat1, 2, 0, 0),
+  [2679] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__type_definition_type_repeat1, 2, 0, 0), SHIFT_REPEAT(961),
+  [2682] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_qualifier, 1, 0, 0),
+  [2684] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_qualifier, 1, 0, 0),
+  [2686] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 3, 0, 24),
+  [2688] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 3, 0, 24),
   [2690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(710),
-  [2692] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 2, .production_id = 6),
-  [2694] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 2, .production_id = 6),
-  [2696] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 3, .production_id = 24),
-  [2698] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 3, .production_id = 24),
-  [2700] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 4, .production_id = 52),
-  [2702] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 4, .production_id = 52),
-  [2704] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ms_declspec_modifier, 4),
-  [2706] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ms_declspec_modifier, 4),
-  [2708] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 2, .production_id = 6),
-  [2710] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 2, .production_id = 6),
+  [2692] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 2, 0, 6),
+  [2694] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 2, 0, 6),
+  [2696] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 3, 0, 24),
+  [2698] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 3, 0, 24),
+  [2700] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 4, 0, 52),
+  [2702] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 4, 0, 52),
+  [2704] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ms_declspec_modifier, 4, 0, 0),
+  [2706] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ms_declspec_modifier, 4, 0, 0),
+  [2708] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 2, 0, 6),
+  [2710] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 2, 0, 6),
   [2712] = {.entry = {.count = 1, .reusable = false}}, SHIFT(766),
   [2714] = {.entry = {.count = 1, .reusable = false}}, SHIFT(799),
   [2716] = {.entry = {.count = 1, .reusable = false}}, SHIFT(758),
@@ -160192,18 +156822,18 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [2726] = {.entry = {.count = 1, .reusable = false}}, SHIFT(759),
   [2728] = {.entry = {.count = 1, .reusable = true}}, SHIFT(761),
   [2730] = {.entry = {.count = 1, .reusable = false}}, SHIFT(760),
-  [2732] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_storage_class_specifier, 1),
-  [2734] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_storage_class_specifier, 1),
-  [2736] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_expression, 5, .production_id = 95),
-  [2738] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_expression, 5, .production_id = 95),
+  [2732] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_storage_class_specifier, 1, 0, 0),
+  [2734] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_storage_class_specifier, 1, 0, 0),
+  [2736] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_expression, 5, 0, 95),
+  [2738] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_expression, 5, 0, 95),
   [2740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(762),
   [2742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(724),
   [2744] = {.entry = {.count = 1, .reusable = false}}, SHIFT(852),
   [2746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(852),
-  [2748] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_expression, 4, .production_id = 66),
-  [2750] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_expression, 4, .production_id = 66),
-  [2752] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_expression, 3, .production_id = 29),
-  [2754] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment_expression, 3, .production_id = 29),
+  [2748] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_expression, 4, 0, 66),
+  [2750] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_expression, 4, 0, 66),
+  [2752] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_expression, 3, 0, 29),
+  [2754] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment_expression, 3, 0, 29),
   [2756] = {.entry = {.count = 1, .reusable = false}}, SHIFT(772),
   [2758] = {.entry = {.count = 1, .reusable = false}}, SHIFT(773),
   [2760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(774),
@@ -160216,119 +156846,119 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [2774] = {.entry = {.count = 1, .reusable = true}}, SHIFT(793),
   [2776] = {.entry = {.count = 1, .reusable = false}}, SHIFT(794),
   [2778] = {.entry = {.count = 1, .reusable = true}}, SHIFT(725),
-  [2780] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 3, .production_id = 25),
-  [2782] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 3, .production_id = 25),
-  [2784] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 3, .production_id = 23),
-  [2786] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 3, .production_id = 23),
-  [2788] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 3, .production_id = 25),
-  [2790] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 3, .production_id = 25),
-  [2792] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 2, .production_id = 7),
-  [2794] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 2, .production_id = 7),
-  [2796] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 3, .production_id = 23),
-  [2798] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 3, .production_id = 23),
-  [2800] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 2, .production_id = 7),
-  [2802] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 2, .production_id = 7),
-  [2804] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration_specifiers, 2, .production_id = 2),
-  [2806] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_specifiers, 2, .production_id = 2),
-  [2808] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration_specifiers, 3, .production_id = 13),
-  [2810] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_specifiers, 3, .production_id = 13),
-  [2812] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 4, .production_id = 51),
-  [2814] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 4, .production_id = 51),
-  [2816] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration_specifiers, 1, .production_id = 2),
-  [2818] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_specifiers, 1, .production_id = 2),
-  [2820] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 5, .production_id = 81),
-  [2822] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 5, .production_id = 81),
-  [2824] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 4, .production_id = 51),
-  [2826] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 4, .production_id = 51),
-  [2828] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 4, .production_id = 53),
-  [2830] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 4, .production_id = 53),
-  [2832] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_sized_type_specifier_repeat1, 2),
-  [2834] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sized_type_specifier_repeat1, 2),
-  [2836] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_sized_type_specifier_repeat1, 2), SHIFT_REPEAT(1006),
-  [2839] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration_specifiers, 2, .production_id = 13),
-  [2841] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_specifiers, 2, .production_id = 13),
-  [2843] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 5, .production_id = 51),
-  [2845] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 5, .production_id = 51),
-  [2847] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 5, .production_id = 53),
-  [2849] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 5, .production_id = 53),
-  [2851] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 4, .production_id = 23),
-  [2853] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 4, .production_id = 23),
-  [2855] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 3, .production_id = 7),
-  [2857] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 3, .production_id = 7),
-  [2859] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 4, .production_id = 25),
-  [2861] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 4, .production_id = 25),
-  [2863] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 3, .production_id = 7),
-  [2865] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 3, .production_id = 7),
-  [2867] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type_specifier, 1, .production_id = 1), SHIFT(1198),
-  [2870] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_macro_type_specifier, 4, .dynamic_precedence = -1, .production_id = 58),
-  [2872] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_macro_type_specifier, 4, .dynamic_precedence = -1, .production_id = 58),
-  [2874] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 3, .production_id = 7),
-  [2876] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 3, .production_id = 7),
-  [2878] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 3, .production_id = 6),
-  [2880] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 3, .production_id = 6),
-  [2882] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 4, .production_id = 24),
-  [2884] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 4, .production_id = 24),
-  [2886] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 4, .production_id = 23),
-  [2888] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 4, .production_id = 23),
-  [2890] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 3, .production_id = 6),
-  [2892] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 3, .production_id = 6),
-  [2894] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration_list, 3),
-  [2896] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration_list, 3),
-  [2898] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_specifier, 1),
-  [2900] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_specifier, 1),
-  [2902] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, .production_id = 13),
-  [2904] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 2, .production_id = 13),
+  [2780] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 3, 0, 25),
+  [2782] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 3, 0, 25),
+  [2784] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 3, 0, 23),
+  [2786] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 3, 0, 23),
+  [2788] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 3, 0, 25),
+  [2790] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 3, 0, 25),
+  [2792] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 2, 0, 7),
+  [2794] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 2, 0, 7),
+  [2796] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 3, 0, 23),
+  [2798] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 3, 0, 23),
+  [2800] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 2, 0, 7),
+  [2802] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 2, 0, 7),
+  [2804] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration_specifiers, 2, 0, 2),
+  [2806] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_specifiers, 2, 0, 2),
+  [2808] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration_specifiers, 3, 0, 13),
+  [2810] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_specifiers, 3, 0, 13),
+  [2812] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 4, 0, 51),
+  [2814] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 4, 0, 51),
+  [2816] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration_specifiers, 1, 0, 2),
+  [2818] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_specifiers, 1, 0, 2),
+  [2820] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 5, 0, 81),
+  [2822] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 5, 0, 81),
+  [2824] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 4, 0, 51),
+  [2826] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 4, 0, 51),
+  [2828] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 4, 0, 53),
+  [2830] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 4, 0, 53),
+  [2832] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_sized_type_specifier_repeat1, 2, 0, 0),
+  [2834] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sized_type_specifier_repeat1, 2, 0, 0),
+  [2836] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_sized_type_specifier_repeat1, 2, 0, 0), SHIFT_REPEAT(1006),
+  [2839] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration_specifiers, 2, 0, 13),
+  [2841] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_specifiers, 2, 0, 13),
+  [2843] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 5, 0, 51),
+  [2845] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 5, 0, 51),
+  [2847] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 5, 0, 53),
+  [2849] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 5, 0, 53),
+  [2851] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 4, 0, 23),
+  [2853] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 4, 0, 23),
+  [2855] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 3, 0, 7),
+  [2857] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 3, 0, 7),
+  [2859] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 4, 0, 25),
+  [2861] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 4, 0, 25),
+  [2863] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 3, 0, 7),
+  [2865] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 3, 0, 7),
+  [2867] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type_specifier, 1, 0, 1), SHIFT(1198),
+  [2870] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_macro_type_specifier, 4, -1, 58),
+  [2872] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_macro_type_specifier, 4, -1, 58),
+  [2874] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 3, 0, 7),
+  [2876] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 3, 0, 7),
+  [2878] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 3, 0, 6),
+  [2880] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 3, 0, 6),
+  [2882] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 4, 0, 24),
+  [2884] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 4, 0, 24),
+  [2886] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 4, 0, 23),
+  [2888] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 4, 0, 23),
+  [2890] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 3, 0, 6),
+  [2892] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 3, 0, 6),
+  [2894] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration_list, 3, 0, 0),
+  [2896] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration_list, 3, 0, 0),
+  [2898] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_specifier, 1, 0, 0),
+  [2900] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_specifier, 1, 0, 0),
+  [2902] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, 0, 13),
+  [2904] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 2, 0, 13),
   [2906] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1042),
-  [2908] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 5, .production_id = 51),
-  [2910] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 5, .production_id = 51),
-  [2912] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration_list, 2),
-  [2914] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration_list, 2),
-  [2916] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 5, .production_id = 49),
-  [2918] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 5, .production_id = 49),
-  [2920] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 3, .production_id = 6),
-  [2922] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 3, .production_id = 6),
-  [2924] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, .dynamic_precedence = -1, .production_id = 9),
-  [2926] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 2, .dynamic_precedence = -1, .production_id = 9),
+  [2908] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 5, 0, 51),
+  [2910] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 5, 0, 51),
+  [2912] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration_list, 2, 0, 0),
+  [2914] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration_list, 2, 0, 0),
+  [2916] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 5, 0, 49),
+  [2918] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 5, 0, 49),
+  [2920] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 3, 0, 6),
+  [2922] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 3, 0, 6),
+  [2924] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, -1, 9),
+  [2926] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 2, -1, 9),
   [2928] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1006),
-  [2930] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enumerator_list, 4),
-  [2932] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enumerator_list, 4),
-  [2934] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, .dynamic_precedence = -1, .production_id = 14),
-  [2936] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 2, .dynamic_precedence = -1, .production_id = 14),
+  [2930] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enumerator_list, 4, 0, 0),
+  [2932] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enumerator_list, 4, 0, 0),
+  [2934] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, -1, 14),
+  [2936] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 2, -1, 14),
   [2938] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1037),
-  [2940] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 5, .production_id = 52),
-  [2942] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 5, .production_id = 52),
-  [2944] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2), REDUCE(aux_sym_sized_type_specifier_repeat1, 2),
-  [2947] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_sized_type_specifier, 2), REDUCE(aux_sym_sized_type_specifier_repeat1, 2),
-  [2950] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 4, .production_id = 24),
-  [2952] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 4, .production_id = 24),
-  [2954] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 4, .production_id = 25),
-  [2956] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 4, .production_id = 25),
-  [2958] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 6, .production_id = 81),
-  [2960] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 6, .production_id = 81),
-  [2962] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 3, .dynamic_precedence = -1, .production_id = 14),
-  [2964] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 3, .dynamic_precedence = -1, .production_id = 14),
-  [2966] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enumerator_list, 2),
-  [2968] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enumerator_list, 2),
-  [2970] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 1), SHIFT(1031),
-  [2973] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 1),
-  [2975] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 1),
+  [2940] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 5, 0, 52),
+  [2942] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 5, 0, 52),
+  [2944] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, 0, 0), REDUCE(aux_sym_sized_type_specifier_repeat1, 2, 0, 0),
+  [2947] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_sized_type_specifier, 2, 0, 0), REDUCE(aux_sym_sized_type_specifier_repeat1, 2, 0, 0),
+  [2950] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 4, 0, 24),
+  [2952] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 4, 0, 24),
+  [2954] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_specifier, 4, 0, 25),
+  [2956] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_specifier, 4, 0, 25),
+  [2958] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_specifier, 6, 0, 81),
+  [2960] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_specifier, 6, 0, 81),
+  [2962] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 3, -1, 14),
+  [2964] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 3, -1, 14),
+  [2966] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enumerator_list, 2, 0, 0),
+  [2968] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enumerator_list, 2, 0, 0),
+  [2970] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 1, 0, 0), SHIFT(1031),
+  [2973] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 1, 0, 0),
+  [2975] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 1, 0, 0),
   [2977] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1033),
   [2979] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1024),
-  [2981] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, .production_id = 2),
-  [2983] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 2, .production_id = 2),
-  [2985] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 6, .production_id = 79),
-  [2987] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 6, .production_id = 79),
-  [2989] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 3, .production_id = 13),
-  [2991] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 3, .production_id = 13),
+  [2981] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, 0, 2),
+  [2983] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 2, 0, 2),
+  [2985] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 6, 0, 79),
+  [2987] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 6, 0, 79),
+  [2989] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sized_type_specifier, 3, 0, 13),
+  [2991] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sized_type_specifier, 3, 0, 13),
   [2993] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1040),
-  [2995] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 4, .production_id = 23),
-  [2997] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 4, .production_id = 23),
-  [2999] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enumerator_list, 3),
-  [3001] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enumerator_list, 3),
+  [2995] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 4, 0, 23),
+  [2997] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 4, 0, 23),
+  [2999] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enumerator_list, 3, 0, 0),
+  [3001] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enumerator_list, 3, 0, 0),
   [3003] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409),
-  [3005] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 2, .production_id = 6),
-  [3007] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 2, .production_id = 6),
-  [3009] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_enum_specifier, 2, .production_id = 6), SHIFT(2216),
+  [3005] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 2, 0, 6),
+  [3007] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 2, 0, 6),
+  [3009] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_enum_specifier, 2, 0, 6), SHIFT(2216),
   [3012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1495),
   [3014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2394),
   [3016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146),
@@ -160342,11 +156972,11 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [3032] = {.entry = {.count = 1, .reusable = false}}, SHIFT(831),
   [3034] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2392),
   [3036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(843),
-  [3038] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 4, .production_id = 49),
-  [3040] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 4, .production_id = 49),
-  [3042] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_enum_specifier, 4, .production_id = 49), SHIFT(2216),
+  [3038] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 4, 0, 49),
+  [3040] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 4, 0, 49),
+  [3042] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_enum_specifier, 4, 0, 49), SHIFT(2216),
   [3045] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1586),
-  [3047] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_pointer_declarator, 1, .dynamic_precedence = 1),
+  [3047] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_pointer_declarator, 1, 1, 0),
   [3049] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1252),
   [3051] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1238),
   [3053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(676),
@@ -160356,33 +156986,33 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [3061] = {.entry = {.count = 1, .reusable = false}}, SHIFT(853),
   [3063] = {.entry = {.count = 1, .reusable = false}}, SHIFT(849),
   [3065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(706),
-  [3067] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_pointer_declarator, 2, .dynamic_precedence = 1),
-  [3069] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 2, .production_id = 7),
-  [3071] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 2, .production_id = 7),
-  [3073] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_enum_specifier, 2, .production_id = 7), SHIFT(2216),
+  [3067] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_pointer_declarator, 2, 1, 0),
+  [3069] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 2, 0, 7),
+  [3071] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 2, 0, 7),
+  [3073] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_enum_specifier, 2, 0, 7), SHIFT(2216),
   [3076] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1830),
-  [3078] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 5, .production_id = 79),
-  [3080] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 5, .production_id = 79),
-  [3082] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_enum_specifier, 5, .production_id = 79), SHIFT(2216),
-  [3085] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 3, .production_id = 23),
-  [3087] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 3, .production_id = 23),
-  [3089] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_enum_specifier, 3, .production_id = 23), SHIFT(2216),
+  [3078] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 5, 0, 79),
+  [3080] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 5, 0, 79),
+  [3082] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_enum_specifier, 5, 0, 79), SHIFT(2216),
+  [3085] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_specifier, 3, 0, 23),
+  [3087] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_specifier, 3, 0, 23),
+  [3089] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_enum_specifier, 3, 0, 23), SHIFT(2216),
   [3092] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1724),
   [3094] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1277),
   [3096] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1117),
   [3098] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1720),
   [3100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1721),
-  [3102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ms_call_modifier, 1),
-  [3104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ms_call_modifier, 1),
-  [3106] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__declarator, 1), REDUCE(sym__type_specifier, 1, .production_id = 1),
-  [3109] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym__declarator, 1), REDUCE(sym__type_specifier, 1, .production_id = 1), SHIFT(1198),
-  [3113] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declarator, 1), REDUCE(sym__type_specifier, 1, .production_id = 1),
+  [3102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ms_call_modifier, 1, 0, 0),
+  [3104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ms_call_modifier, 1, 0, 0),
+  [3106] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__declarator, 1, 0, 0), REDUCE(sym__type_specifier, 1, 0, 1),
+  [3109] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym__declarator, 1, 0, 0), REDUCE(sym__type_specifier, 1, 0, 1), SHIFT(1198),
+  [3113] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declarator, 1, 0, 0), REDUCE(sym__type_specifier, 1, 0, 1),
   [3116] = {.entry = {.count = 1, .reusable = false}}, SHIFT(841),
   [3118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(840),
   [3120] = {.entry = {.count = 1, .reusable = false}}, SHIFT(840),
   [3122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(826),
-  [3124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enumerator, 3, .production_id = 78),
-  [3126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enumerator, 3, .production_id = 78),
+  [3124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enumerator, 3, 0, 78),
+  [3126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enumerator, 3, 0, 78),
   [3128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(838),
   [3130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(836),
   [3132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(834),
@@ -160409,7 +157039,7 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [3174] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1234),
   [3176] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1176),
   [3178] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1229),
-  [3180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_pointer_declarator, 3, .dynamic_precedence = 1),
+  [3180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_pointer_declarator, 3, 1, 0),
   [3182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(950),
   [3184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1252),
   [3186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1238),
@@ -160418,21 +157048,21 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [3192] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1675),
   [3194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1442),
   [3196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1166),
-  [3198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_argument_list, 4),
-  [3200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_argument_list, 4),
-  [3202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_argument_list, 2),
-  [3204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_argument_list, 2),
+  [3198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_argument_list, 4, 0, 0),
+  [3200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_argument_list, 4, 0, 0),
+  [3202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_argument_list, 2, 0, 0),
+  [3204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_argument_list, 2, 0, 0),
   [3206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(737),
-  [3208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comma_expression, 3, .production_id = 42),
-  [3210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_argument_list, 3),
-  [3212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_argument_list, 3),
-  [3214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_pointer_declarator_repeat1, 2),
-  [3216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_pointer_declarator_repeat1, 2),
-  [3218] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_pointer_declarator_repeat1, 2), SHIFT_REPEAT(1252),
-  [3221] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_pointer_declarator_repeat1, 2), SHIFT_REPEAT(1238),
-  [3224] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_call_expression, 2, .production_id = 12),
-  [3226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_call_expression, 2, .production_id = 12),
-  [3228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bitfield_clause, 2),
+  [3208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comma_expression, 3, 0, 42),
+  [3210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_argument_list, 3, 0, 0),
+  [3212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_argument_list, 3, 0, 0),
+  [3214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_pointer_declarator_repeat1, 2, 0, 0),
+  [3216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_pointer_declarator_repeat1, 2, 0, 0),
+  [3218] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_pointer_declarator_repeat1, 2, 0, 0), SHIFT_REPEAT(1252),
+  [3221] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_pointer_declarator_repeat1, 2, 0, 0), SHIFT_REPEAT(1238),
+  [3224] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_call_expression, 2, 0, 12),
+  [3226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_call_expression, 2, 0, 12),
+  [3228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bitfield_clause, 2, 0, 0),
   [3230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1222),
   [3232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(906),
   [3234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(701),
@@ -160461,66 +157091,66 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [3280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(712),
   [3282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(784),
   [3284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(721),
-  [3286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 4, .production_id = 106),
+  [3286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 4, 0, 106),
   [3288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90),
-  [3290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 3, .production_id = 83),
+  [3290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 3, 0, 83),
   [3292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316),
-  [3294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 4, .production_id = 107),
-  [3296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_pair, 3, .production_id = 119),
-  [3298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 3, .production_id = 84),
+  [3294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 4, 0, 107),
+  [3296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_pair, 3, 0, 119),
+  [3298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 3, 0, 84),
   [3300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198),
-  [3302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 4, .production_id = 105),
-  [3304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_initializer_list_repeat1, 2),
+  [3302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 4, 0, 105),
+  [3304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_initializer_list_repeat1, 2, 0, 0),
   [3306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(782),
   [3308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184),
   [3310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(727),
-  [3312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_pair, 3, .production_id = 120),
+  [3312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_initializer_pair, 3, 0, 120),
   [3314] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2023),
   [3316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(745),
-  [3318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_init_declarator, 3, .production_id = 62),
-  [3320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_generic_expression_repeat1, 4),
-  [3322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_qualifier, 3),
+  [3318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_init_declarator, 3, 0, 62),
+  [3320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_generic_expression_repeat1, 4, 0, 0),
+  [3322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_qualifier, 3, 0, 0),
   [3324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(785),
   [3326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(722),
-  [3328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2),
+  [3328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 0),
   [3330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(894),
   [3332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297),
   [3334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(719),
-  [3336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 3),
+  [3336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 3, 0, 0),
   [3338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(893),
   [3340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(848),
   [3342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289),
   [3344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270),
-  [3346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 5, .production_id = 123),
+  [3346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__for_statement_body, 5, 0, 123),
   [3348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(808),
   [3350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(746),
   [3352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2007),
   [3354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
-  [3356] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ms_unaligned_ptr_modifier, 1),
-  [3358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ms_unaligned_ptr_modifier, 1),
+  [3356] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ms_unaligned_ptr_modifier, 1, 0, 0),
+  [3358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ms_unaligned_ptr_modifier, 1, 0, 0),
   [3360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67),
   [3362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2015),
   [3364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1200),
   [3366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1991),
-  [3368] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ms_pointer_modifier, 1),
-  [3370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ms_pointer_modifier, 1),
+  [3368] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ms_pointer_modifier, 1, 0, 0),
+  [3370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ms_pointer_modifier, 1, 0, 0),
   [3372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51),
   [3374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(895),
   [3376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
-  [3378] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__type_definition_type_repeat1, 2), SHIFT_REPEAT(950),
+  [3378] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__type_definition_type_repeat1, 2, 0, 0), SHIFT_REPEAT(950),
   [3381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2002),
   [3383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
   [3385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2185),
   [3387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(459),
-  [3389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 2, .production_id = 13),
-  [3391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 1, .production_id = 2),
-  [3393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 3, .production_id = 13),
-  [3395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 2, .production_id = 2),
+  [3389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 2, 0, 13),
+  [3391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 1, 0, 2),
+  [3393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 3, 0, 13),
+  [3395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 2, 0, 2),
   [3397] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1031),
   [3399] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1281),
-  [3401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__preproc_expression, 1),
+  [3401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__preproc_expression, 1, 0, 0),
   [3403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1289),
-  [3405] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__preproc_expression, 1),
+  [3405] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__preproc_expression, 1, 0, 0),
   [3407] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1287),
   [3409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1160),
   [3411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1343),
@@ -160552,8 +157182,8 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [3463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1162),
   [3465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2393),
   [3467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1306),
-  [3469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_binary_expression, 3, .production_id = 29),
-  [3471] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_binary_expression, 3, .production_id = 29),
+  [3469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_binary_expression, 3, 0, 29),
+  [3471] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_binary_expression, 3, 0, 29),
   [3473] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1297),
   [3475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1314),
   [3477] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2084),
@@ -160565,13 +157195,13 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [3489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1395),
   [3491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1396),
   [3493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1412),
-  [3495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_argument_list_repeat1, 2),
+  [3495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_argument_list_repeat1, 2, 0, 0),
   [3497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1365),
   [3499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1411),
-  [3501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 1, .production_id = 40),
+  [3501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 1, 0, 40),
   [3503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1405),
-  [3505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_defined, 4),
-  [3507] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_defined, 4),
+  [3505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_defined, 4, 0, 0),
+  [3507] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_defined, 4, 0, 0),
   [3509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1410),
   [3511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1408),
   [3513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1407),
@@ -160585,33 +157215,33 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [3529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1372),
   [3531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1383),
   [3533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1375),
-  [3535] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_definition_type, 1, .production_id = 2),
-  [3537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_definition_type, 1, .production_id = 2),
-  [3539] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 2, .production_id = 72),
+  [3535] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_definition_type, 1, 0, 2),
+  [3537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_definition_type, 1, 0, 2),
+  [3539] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 2, 0, 72),
   [3541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1394),
   [3543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1387),
   [3545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1416),
   [3547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1351),
   [3549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1386),
-  [3551] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_defined, 2),
-  [3553] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_defined, 2),
-  [3555] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_definition_type, 2, .production_id = 2),
-  [3557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_definition_type, 2, .production_id = 2),
+  [3551] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_defined, 2, 0, 0),
+  [3553] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_defined, 2, 0, 0),
+  [3555] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_definition_type, 2, 0, 2),
+  [3557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_definition_type, 2, 0, 2),
   [3559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1317),
-  [3561] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_definition_type, 2, .production_id = 13),
-  [3563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_definition_type, 2, .production_id = 13),
-  [3565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_parenthesized_expression, 3),
-  [3567] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_parenthesized_expression, 3),
+  [3561] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_definition_type, 2, 0, 13),
+  [3563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_definition_type, 2, 0, 13),
+  [3565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_parenthesized_expression, 3, 0, 0),
+  [3567] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_parenthesized_expression, 3, 0, 0),
   [3569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1355),
   [3571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1354),
   [3573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1353),
   [3575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1374),
   [3577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1352),
-  [3579] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_definition_type, 3, .production_id = 13),
-  [3581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_definition_type, 3, .production_id = 13),
+  [3579] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_definition_type, 3, 0, 13),
+  [3581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_definition_type, 3, 0, 13),
   [3583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1389),
-  [3585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_unary_expression, 2, .production_id = 4),
-  [3587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_unary_expression, 2, .production_id = 4),
+  [3585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_unary_expression, 2, 0, 4),
+  [3587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_unary_expression, 2, 0, 4),
   [3589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1406),
   [3591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1345),
   [3593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1346),
@@ -160631,90 +157261,90 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [3621] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1323),
   [3623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
   [3625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1562),
-  [3627] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 3, .production_id = 13), SHIFT(1006),
-  [3630] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 3, .dynamic_precedence = -1, .production_id = 14), SHIFT(1006),
-  [3633] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 1), SHIFT(1390),
-  [3636] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 1), SHIFT(1415),
-  [3639] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 1), SHIFT(1391),
+  [3627] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 3, 0, 13), SHIFT(1006),
+  [3630] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 3, -1, 14), SHIFT(1006),
+  [3633] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 1, 0, 0), SHIFT(1390),
+  [3636] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 1, 0, 0), SHIFT(1415),
+  [3639] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 1, 0, 0), SHIFT(1391),
   [3642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
   [3644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1357),
   [3646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1470),
   [3648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(503),
-  [3650] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, .dynamic_precedence = -1, .production_id = 14), SHIFT(1380),
-  [3653] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, .production_id = 13), SHIFT(1379),
-  [3656] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, .dynamic_precedence = -1, .production_id = 9), SHIFT(1006),
+  [3650] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, -1, 14), SHIFT(1380),
+  [3653] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, 0, 13), SHIFT(1379),
+  [3656] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, -1, 9), SHIFT(1006),
   [3659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
   [3661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1378),
   [3663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1558),
-  [3665] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, .production_id = 2), SHIFT(1006),
-  [3668] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type_specifier, 1, .production_id = 1), SHIFT(1392),
-  [3671] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type_specifier, 1), SHIFT(1398),
+  [3665] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, 0, 2), SHIFT(1006),
+  [3668] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type_specifier, 1, 0, 1), SHIFT(1392),
+  [3671] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type_specifier, 1, 0, 0), SHIFT(1398),
   [3674] = {.entry = {.count = 1, .reusable = true}}, SHIFT(502),
   [3676] = {.entry = {.count = 1, .reusable = true}}, SHIFT(499),
   [3678] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
   [3680] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
   [3682] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1578),
-  [3684] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2), REDUCE(aux_sym_sized_type_specifier_repeat1, 2), SHIFT(1006),
+  [3684] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_sized_type_specifier, 2, 0, 0), REDUCE(aux_sym_sized_type_specifier_repeat1, 2, 0, 0), SHIFT(1006),
   [3688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1480),
   [3690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2216),
-  [3692] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_enum_specifier, 2, .production_id = 6), SHIFT(2185),
+  [3692] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_enum_specifier, 2, 0, 6), SHIFT(2185),
   [3695] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1489),
-  [3697] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_declaration_declarator, 2, .production_id = 33),
-  [3699] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declarator, 2, .production_id = 33),
-  [3701] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declarator, 2, .production_id = 33),
-  [3703] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_declarator_repeat1, 2), SHIFT_REPEAT(1489),
-  [3706] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_declarator_repeat1, 2),
-  [3708] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_declarator_repeat1, 2), SHIFT_REPEAT(2216),
-  [3711] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_declarator_repeat1, 2),
+  [3697] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_declaration_declarator, 2, 0, 33),
+  [3699] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declarator, 2, 0, 33),
+  [3701] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declarator, 2, 0, 33),
+  [3703] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_declarator_repeat1, 2, 0, 0), SHIFT_REPEAT(1489),
+  [3706] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_declarator_repeat1, 2, 0, 0),
+  [3708] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_declarator_repeat1, 2, 0, 0), SHIFT_REPEAT(2216),
+  [3711] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_declarator_repeat1, 2, 0, 0),
   [3713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1616),
   [3715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1770),
   [3717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1789),
   [3719] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1341),
   [3721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2148),
   [3723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(616),
-  [3725] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declarator, 3, .production_id = 33),
-  [3727] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declarator, 3, .production_id = 33),
+  [3725] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declarator, 3, 0, 33),
+  [3727] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declarator, 3, 0, 33),
   [3729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(671),
   [3731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(645),
   [3733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(655),
-  [3735] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declarator, 4, .production_id = 33),
-  [3737] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declarator, 4, .production_id = 33),
-  [3739] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_declaration_declarator, 3, .production_id = 33),
-  [3741] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_declaration_declarator, 3, .production_id = 33),
+  [3735] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declarator, 4, 0, 33),
+  [3737] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declarator, 4, 0, 33),
+  [3739] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_declaration_declarator, 3, 0, 33),
+  [3741] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_declaration_declarator, 3, 0, 33),
   [3743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(629),
-  [3745] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_enumerator_list, 3, .production_id = 38),
+  [3745] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_enumerator_list, 3, 0, 38),
   [3747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(609),
-  [3749] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_enumerator_list, 2, .production_id = 16),
+  [3749] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_enumerator_list, 2, 0, 16),
   [3751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1749),
-  [3753] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2),
-  [3755] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2), SHIFT_REPEAT(2128),
-  [3758] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2),
-  [3760] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 4),
-  [3762] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 4),
-  [3764] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_declarator, 2, .dynamic_precedence = 1, .production_id = 31),
+  [3753] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0),
+  [3755] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0), SHIFT_REPEAT(2128),
+  [3758] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_attributed_declarator_repeat1, 2, 0, 0),
+  [3760] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 4, 0, 0),
+  [3762] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 4, 0, 0),
+  [3764] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_declarator, 2, 1, 31),
   [3766] = {.entry = {.count = 1, .reusable = true}}, SHIFT(682),
   [3768] = {.entry = {.count = 1, .reusable = false}}, SHIFT(675),
-  [3770] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_declarator, 3, .dynamic_precedence = 1, .production_id = 59),
-  [3772] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_declarator_repeat1, 1),
-  [3774] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_declarator_repeat1, 1),
-  [3776] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 2),
-  [3778] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 2),
-  [3780] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 3),
-  [3782] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 3),
-  [3784] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_declarator, 4, .dynamic_precedence = 1, .production_id = 90),
+  [3770] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_declarator, 3, 1, 59),
+  [3772] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_declarator_repeat1, 1, 0, 0),
+  [3774] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_declarator_repeat1, 1, 0, 0),
+  [3776] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 2, 0, 0),
+  [3778] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 2, 0, 0),
+  [3780] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_list, 3, 0, 0),
+  [3782] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 3, 0, 0),
+  [3784] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_declarator, 4, 1, 90),
   [3786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1899),
   [3788] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1340),
   [3790] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2400),
   [3792] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2065),
   [3794] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1038),
   [3796] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1045),
-  [3798] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_declarator, 5, .dynamic_precedence = 1, .production_id = 113),
+  [3798] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_declarator, 5, 1, 113),
   [3800] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1802),
   [3802] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362),
   [3804] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1868),
   [3806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279),
   [3808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1557),
-  [3810] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_declaration_declarator, 1, .production_id = 21),
+  [3810] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_declaration_declarator, 1, 0, 21),
   [3812] = {.entry = {.count = 1, .reusable = false}}, SHIFT(674),
   [3814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(813),
   [3816] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1860),
@@ -160733,151 +157363,151 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [3842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278),
   [3844] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1833),
   [3846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277),
-  [3848] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributed_declarator, 2),
-  [3850] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributed_declarator, 2),
-  [3852] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_field_declarator, 5, .dynamic_precedence = 1, .production_id = 113),
-  [3854] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_enumerator_list_no_comma, 3, .production_id = 16),
+  [3848] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributed_declarator, 2, 0, 0),
+  [3850] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributed_declarator, 2, 0, 0),
+  [3852] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_field_declarator, 5, 1, 113),
+  [3854] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_enumerator_list_no_comma, 3, 0, 16),
   [3856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1817),
   [3858] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1315),
   [3860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2275),
-  [3862] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_enumerator_list, 3, .production_id = 16),
+  [3862] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_enumerator_list, 3, 0, 16),
   [3864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1823),
   [3866] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1328),
   [3868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2264),
-  [3870] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_field_declarator, 2, .dynamic_precedence = 1, .production_id = 31),
-  [3872] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enumerator_list_repeat1, 2), SHIFT_REPEAT(1899),
-  [3875] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_enumerator_list_repeat1, 2), SHIFT_REPEAT(1312),
-  [3878] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_enumerator_list_repeat1, 2), SHIFT_REPEAT(2154),
-  [3881] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_enumerator_list_repeat1, 2), SHIFT_REPEAT(2065),
-  [3884] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enumerator_list_repeat1, 2),
-  [3886] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_definition_repeat1, 1),
-  [3888] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_definition_repeat1, 1), REDUCE(aux_sym_function_declarator_repeat1, 1),
-  [3891] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_definition_repeat1, 1),
+  [3870] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_field_declarator, 2, 1, 31),
+  [3872] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enumerator_list_repeat1, 2, 0, 0), SHIFT_REPEAT(1899),
+  [3875] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_enumerator_list_repeat1, 2, 0, 0), SHIFT_REPEAT(1312),
+  [3878] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_enumerator_list_repeat1, 2, 0, 0), SHIFT_REPEAT(2154),
+  [3881] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_enumerator_list_repeat1, 2, 0, 0), SHIFT_REPEAT(2065),
+  [3884] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enumerator_list_repeat1, 2, 0, 0),
+  [3886] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_definition_repeat1, 1, 0, 0),
+  [3888] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_definition_repeat1, 1, 0, 0), REDUCE(aux_sym_function_declarator_repeat1, 1, 0, 0),
+  [3891] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_definition_repeat1, 1, 0, 0),
   [3893] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1763),
-  [3895] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_clobber_list, 1),
-  [3897] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_enumerator_list_no_comma, 3, .production_id = 38),
+  [3895] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_clobber_list, 1, 0, 0),
+  [3897] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_enumerator_list_no_comma, 3, 0, 38),
   [3899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2312),
-  [3901] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_field_declarator, 4, .dynamic_precedence = 1, .production_id = 90),
-  [3903] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_enumerator_list_no_comma, 4, .production_id = 38),
-  [3905] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_enumerator_list, 4, .production_id = 38),
+  [3901] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_field_declarator, 4, 1, 90),
+  [3903] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_enumerator_list_no_comma, 4, 0, 38),
+  [3905] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_enumerator_list, 4, 0, 38),
   [3907] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1769),
-  [3909] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_enumerator_list_no_comma, 2, .production_id = 16),
+  [3909] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_enumerator_list_no_comma, 2, 0, 16),
   [3911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1753),
   [3913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1751),
   [3915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2268),
-  [3917] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__field_declaration_declarator_repeat1, 2, .production_id = 31),
-  [3919] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_field_declarator, 3, .dynamic_precedence = 1, .production_id = 59),
+  [3917] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__field_declaration_declarator_repeat1, 2, 0, 31),
+  [3919] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_field_declarator, 3, 1, 59),
   [3921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1766),
-  [3923] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_output_operand_list, 1),
+  [3923] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_output_operand_list, 1, 0, 0),
   [3925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2183),
-  [3927] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_type_declarator, 2, .dynamic_precedence = 1, .production_id = 31),
+  [3927] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_type_declarator, 2, 1, 31),
   [3929] = {.entry = {.count = 1, .reusable = false}}, SHIFT(680),
-  [3931] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_type_declarator, 4, .dynamic_precedence = 1, .production_id = 90),
-  [3933] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declarator, 1),
-  [3935] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declarator, 1),
-  [3937] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_declarator, 4, .dynamic_precedence = -10),
-  [3939] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_declarator, 4, .dynamic_precedence = -10),
-  [3941] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_declarator, 3, .dynamic_precedence = -10),
-  [3943] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_declarator, 3, .dynamic_precedence = -10),
-  [3945] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_input_operand_list, 1),
+  [3931] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_type_declarator, 4, 1, 90),
+  [3933] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declarator, 1, 0, 0),
+  [3935] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declarator, 1, 0, 0),
+  [3937] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_declarator, 4, -10, 0),
+  [3939] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_declarator, 4, -10, 0),
+  [3941] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_declarator, 3, -10, 0),
+  [3943] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_declarator, 3, -10, 0),
+  [3945] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_input_operand_list, 1, 0, 0),
   [3947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2298),
-  [3949] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_type_declarator, 5, .dynamic_precedence = 1, .production_id = 113),
-  [3951] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_declarator, 4, .production_id = 21),
-  [3953] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_declarator, 4, .production_id = 21),
-  [3955] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_declarator, 4, .production_id = 93),
-  [3957] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_declarator, 4, .production_id = 93),
-  [3959] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_type_declarator, 3, .dynamic_precedence = 1, .production_id = 59),
-  [3961] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_declarator, 5, .production_id = 115),
-  [3963] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_declarator, 5, .production_id = 115),
+  [3949] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_type_declarator, 5, 1, 113),
+  [3951] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_declarator, 4, 0, 21),
+  [3953] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_declarator, 4, 0, 21),
+  [3955] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_declarator, 4, 0, 93),
+  [3957] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_declarator, 4, 0, 93),
+  [3959] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pointer_type_declarator, 3, 1, 59),
+  [3961] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_declarator, 5, 0, 115),
+  [3963] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_declarator, 5, 0, 115),
   [3965] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1467),
-  [3967] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_definition_declarators, 1, .production_id = 21),
-  [3969] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributed_field_declarator, 2),
-  [3971] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributed_field_declarator, 2),
-  [3973] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_declarator, 3, .production_id = 21),
-  [3975] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_declarator, 3, .production_id = 21),
+  [3967] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_definition_declarators, 1, 0, 21),
+  [3969] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributed_field_declarator, 2, 0, 0),
+  [3971] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributed_field_declarator, 2, 0, 0),
+  [3973] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_declarator, 3, 0, 21),
+  [3975] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_declarator, 3, 0, 21),
   [3977] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1993),
   [3979] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1818),
   [3981] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2302),
   [3983] = {.entry = {.count = 1, .reusable = true}}, SHIFT(711),
-  [3985] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributed_type_declarator, 2),
-  [3987] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributed_type_declarator, 2),
+  [3985] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributed_type_declarator, 2, 0, 0),
+  [3987] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributed_type_declarator, 2, 0, 0),
   [3989] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1975),
   [3991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2318),
-  [3993] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__type_definition_declarators_repeat1, 2, .production_id = 31),
-  [3995] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_declarator, 1),
+  [3993] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__type_definition_declarators_repeat1, 2, 0, 31),
+  [3995] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_declarator, 1, 0, 0),
   [3997] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2026),
   [3999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2263),
   [4001] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1996),
   [4003] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2170),
-  [4005] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_field_declarator, 4, .dynamic_precedence = -10),
-  [4007] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_field_declarator, 4, .dynamic_precedence = -10),
-  [4009] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enumerator, 1, .production_id = 5),
-  [4011] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enumerator, 1, .production_id = 5),
+  [4005] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_field_declarator, 4, -10, 0),
+  [4007] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_field_declarator, 4, -10, 0),
+  [4009] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enumerator, 1, 0, 5),
+  [4011] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enumerator, 1, 0, 5),
   [4013] = {.entry = {.count = 1, .reusable = true}}, SHIFT(791),
-  [4015] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_field_declarator, 5, .production_id = 115),
-  [4017] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_field_declarator, 5, .production_id = 115),
-  [4019] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_field_declarator, 3, .production_id = 21),
-  [4021] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_field_declarator, 3, .production_id = 21),
-  [4023] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_field_declarator, 3, .dynamic_precedence = -10),
-  [4025] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_field_declarator, 3, .dynamic_precedence = -10),
-  [4027] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_in_enumerator_list_no_comma_repeat1, 2), SHIFT_REPEAT(1616),
-  [4030] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_if_in_enumerator_list_no_comma_repeat1, 2),
-  [4032] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_enumerator_list_no_comma_repeat1, 2),
-  [4034] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_in_enumerator_list_repeat1, 2), SHIFT_REPEAT(1899),
-  [4037] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_if_in_enumerator_list_repeat1, 2),
-  [4039] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_enumerator_list_repeat1, 2),
-  [4041] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_field_declarator, 2, .production_id = 33),
-  [4043] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_field_declarator, 2, .production_id = 33),
-  [4045] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 2, .production_id = 34),
-  [4047] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_declarator, 1, .production_id = 50),
-  [4049] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__field_declarator, 1, .production_id = 50),
-  [4051] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 3, .production_id = 67),
-  [4053] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_field_declarator, 4, .production_id = 21),
-  [4055] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_field_declarator, 4, .production_id = 21),
-  [4057] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_field_declarator, 4, .production_id = 93),
-  [4059] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_field_declarator, 4, .production_id = 93),
-  [4061] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_declarator, 1),
-  [4063] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__field_declarator, 1),
+  [4015] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_field_declarator, 5, 0, 115),
+  [4017] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_field_declarator, 5, 0, 115),
+  [4019] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_field_declarator, 3, 0, 21),
+  [4021] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_field_declarator, 3, 0, 21),
+  [4023] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_field_declarator, 3, -10, 0),
+  [4025] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_field_declarator, 3, -10, 0),
+  [4027] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_in_enumerator_list_no_comma_repeat1, 2, 0, 0), SHIFT_REPEAT(1616),
+  [4030] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_if_in_enumerator_list_no_comma_repeat1, 2, 0, 0),
+  [4032] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_enumerator_list_no_comma_repeat1, 2, 0, 0),
+  [4034] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_if_in_enumerator_list_repeat1, 2, 0, 0), SHIFT_REPEAT(1899),
+  [4037] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_if_in_enumerator_list_repeat1, 2, 0, 0),
+  [4039] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_enumerator_list_repeat1, 2, 0, 0),
+  [4041] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_field_declarator, 2, 0, 33),
+  [4043] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_field_declarator, 2, 0, 33),
+  [4045] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 2, 0, 34),
+  [4047] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_declarator, 1, 0, 50),
+  [4049] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__field_declarator, 1, 0, 50),
+  [4051] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_declaration, 3, 0, 67),
+  [4053] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_field_declarator, 4, 0, 21),
+  [4055] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_field_declarator, 4, 0, 21),
+  [4057] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_field_declarator, 4, 0, 93),
+  [4059] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_field_declarator, 4, 0, 93),
+  [4061] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_declarator, 1, 0, 0),
+  [4063] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__field_declarator, 1, 0, 0),
   [4065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1717),
   [4067] = {.entry = {.count = 1, .reusable = false}}, SHIFT(963),
   [4069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1587),
-  [4071] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type_declarator, 2, .production_id = 33),
-  [4073] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type_declarator, 2, .production_id = 33),
+  [4071] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type_declarator, 2, 0, 33),
+  [4073] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type_declarator, 2, 0, 33),
   [4075] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1588),
   [4077] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1614),
-  [4079] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_declaration_declarator, 4, .production_id = 33),
-  [4081] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type_declarator, 4, .production_id = 21),
-  [4083] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_type_declarator, 4, .production_id = 21),
-  [4085] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type_declarator, 4, .production_id = 93),
-  [4087] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_type_declarator, 4, .production_id = 93),
+  [4079] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_declaration_declarator, 4, 0, 33),
+  [4081] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type_declarator, 4, 0, 21),
+  [4083] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_type_declarator, 4, 0, 21),
+  [4085] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type_declarator, 4, 0, 93),
+  [4087] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_type_declarator, 4, 0, 93),
   [4089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1627),
-  [4091] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_type_declarator, 4, .dynamic_precedence = -10),
-  [4093] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_type_declarator, 4, .dynamic_precedence = -10),
-  [4095] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type_declarator, 5, .production_id = 115),
-  [4097] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_type_declarator, 5, .production_id = 115),
+  [4091] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_type_declarator, 4, -10, 0),
+  [4093] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_type_declarator, 4, -10, 0),
+  [4095] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type_declarator, 5, 0, 115),
+  [4097] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_type_declarator, 5, 0, 115),
   [4099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(717),
   [4101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2286),
-  [4103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_declarator, 1, .production_id = 20),
-  [4105] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_declarator, 1, .production_id = 20),
-  [4107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_declarator, 1),
-  [4109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_declarator, 1),
-  [4111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_type_declarator, 3, .dynamic_precedence = -10),
-  [4113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_type_declarator, 3, .dynamic_precedence = -10),
-  [4115] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_initializer_pair_repeat1, 2), SHIFT_REPEAT(751),
-  [4118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_initializer_pair_repeat1, 2),
-  [4120] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_initializer_pair_repeat1, 2), SHIFT_REPEAT(2286),
-  [4123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_declarator, 1, .production_id = 1),
-  [4125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_declarator, 1, .production_id = 1),
-  [4127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_if_in_enumerator_list_no_comma_repeat1, 1),
+  [4103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_declarator, 1, 0, 20),
+  [4105] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_declarator, 1, 0, 20),
+  [4107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_declarator, 1, 0, 0),
+  [4109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_declarator, 1, 0, 0),
+  [4111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_type_declarator, 3, -10, 0),
+  [4113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_type_declarator, 3, -10, 0),
+  [4115] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_initializer_pair_repeat1, 2, 0, 0), SHIFT_REPEAT(751),
+  [4118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_initializer_pair_repeat1, 2, 0, 0),
+  [4120] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_initializer_pair_repeat1, 2, 0, 0), SHIFT_REPEAT(2286),
+  [4123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_declarator, 1, 0, 1),
+  [4125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_declarator, 1, 0, 1),
+  [4127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_if_in_enumerator_list_no_comma_repeat1, 1, 0, 0),
   [4129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1768),
-  [4131] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_enumerator_list_no_comma_repeat1, 1),
-  [4133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type_declarator, 3, .production_id = 21),
-  [4135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_type_declarator, 3, .production_id = 21),
+  [4131] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_preproc_if_in_enumerator_list_no_comma_repeat1, 1, 0, 0),
+  [4133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type_declarator, 3, 0, 21),
+  [4135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_type_declarator, 3, 0, 21),
   [4137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1722),
-  [4139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_definition_repeat1, 2),
-  [4141] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_definition_repeat1, 2), SHIFT_REPEAT(2216),
-  [4144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_enumerator_list, 4, .production_id = 39),
-  [4146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_enumerator_list, 4, .production_id = 39),
+  [4139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_definition_repeat1, 2, 0, 0),
+  [4141] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(2216),
+  [4144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_enumerator_list, 4, 0, 39),
+  [4146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_enumerator_list, 4, 0, 39),
   [4148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1606),
   [4150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1857),
   [4152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1296),
@@ -160886,91 +157516,91 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [4158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1098),
   [4160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139),
   [4162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185),
-  [4164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 3, .production_id = 41),
+  [4164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 3, 0, 41),
   [4166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(683),
-  [4168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 4, .production_id = 74),
+  [4168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 4, 0, 74),
   [4170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240),
-  [4172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_pointer_declarator, 3, .dynamic_precedence = 1, .production_id = 59),
+  [4172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_pointer_declarator, 3, 1, 59),
   [4174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273),
   [4176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361),
   [4178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1600),
   [4180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280),
   [4182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355),
   [4184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
-  [4186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_expression_repeat1, 2),
-  [4188] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_gnu_asm_expression_repeat1, 2), SHIFT_REPEAT(1857),
+  [4186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_expression_repeat1, 2, 0, 0),
+  [4188] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_gnu_asm_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(1857),
   [4191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325),
-  [4193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_enumerator_list, 3, .production_id = 16),
-  [4195] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_enumerator_list, 3, .production_id = 16),
-  [4197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 3, .production_id = 44),
-  [4199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_enumerator_list, 4, .production_id = 38),
-  [4201] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_enumerator_list, 4, .production_id = 38),
+  [4193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_enumerator_list, 3, 0, 16),
+  [4195] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_enumerator_list, 3, 0, 16),
+  [4197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 3, 0, 44),
+  [4199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_enumerator_list, 4, 0, 38),
+  [4201] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_enumerator_list, 4, 0, 38),
   [4203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271),
   [4205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
-  [4207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_pointer_declarator, 2, .dynamic_precedence = 1, .production_id = 31),
-  [4209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_enumerator_list, 5, .production_id = 70),
-  [4211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_enumerator_list, 5, .production_id = 70),
-  [4213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_pointer_declarator, 4, .dynamic_precedence = 1, .production_id = 90),
+  [4207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_pointer_declarator, 2, 1, 31),
+  [4209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_enumerator_list, 5, 0, 70),
+  [4211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_enumerator_list, 5, 0, 70),
+  [4213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_pointer_declarator, 4, 1, 90),
   [4215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357),
   [4217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321),
   [4219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1113),
   [4221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99),
   [4223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1104),
-  [4225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_enumerator_list, 4, .production_id = 16),
-  [4227] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_enumerator_list, 4, .production_id = 16),
-  [4229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_enumerator_list, 5, .production_id = 69),
-  [4231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_enumerator_list, 5, .production_id = 69),
-  [4233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_enumerator_list, 5, .production_id = 38),
-  [4235] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_enumerator_list, 5, .production_id = 38),
+  [4225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_enumerator_list, 4, 0, 16),
+  [4227] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_ifdef_in_enumerator_list, 4, 0, 16),
+  [4229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_enumerator_list, 5, 0, 69),
+  [4231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_enumerator_list, 5, 0, 69),
+  [4233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_enumerator_list, 5, 0, 38),
+  [4235] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_enumerator_list, 5, 0, 38),
   [4237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286),
-  [4239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_enumerator_list, 6, .production_id = 98),
-  [4241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_enumerator_list, 6, .production_id = 98),
+  [4239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_enumerator_list, 6, 0, 98),
+  [4241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_if_in_enumerator_list, 6, 0, 98),
   [4243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1100),
-  [4245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_enumerator_list_repeat1, 2),
-  [4247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 2, .production_id = 18),
+  [4245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_enumerator_list_repeat1, 2, 0, 0),
+  [4247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_descriptor, 2, 0, 18),
   [4249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2369),
-  [4251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 3, .production_id = 73),
-  [4253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_parenthesized_declarator, 4),
-  [4255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_repeat2, 3, .production_id = 94),
-  [4257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 4, .production_id = 93),
-  [4259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_repeat2, 2, .production_id = 31),
-  [4261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__abstract_declarator, 1),
-  [4263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 5, .production_id = 115),
-  [4265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 4, .production_id = 99),
+  [4251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 3, 0, 73),
+  [4253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_parenthesized_declarator, 4, 0, 0),
+  [4255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_repeat2, 3, 0, 94),
+  [4257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 4, 0, 93),
+  [4259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_repeat2, 2, 0, 31),
+  [4261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__abstract_declarator, 1, 0, 0),
+  [4263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 5, 0, 115),
+  [4265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 4, 0, 99),
   [4267] = {.entry = {.count = 1, .reusable = false}}, SHIFT(952),
-  [4269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 2),
-  [4271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_else_in_enumerator_list, 1),
-  [4273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 4, .production_id = 21),
-  [4275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_parenthesized_declarator, 3),
+  [4269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 2, 0, 0),
+  [4271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_else_in_enumerator_list, 1, 0, 0),
+  [4273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 4, 0, 21),
+  [4275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_parenthesized_declarator, 3, 0, 0),
   [4277] = {.entry = {.count = 1, .reusable = false}}, SHIFT(955),
-  [4279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_function_declarator, 1, .production_id = 19),
-  [4281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 1, .production_id = 5),
+  [4279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_function_declarator, 1, 0, 19),
+  [4281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 1, 0, 5),
   [4283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2410),
-  [4285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 3),
-  [4287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_function_declarator, 2, .production_id = 33),
-  [4289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 3, .production_id = 21),
+  [4285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 3, 0, 0),
+  [4287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_function_declarator, 2, 0, 33),
+  [4289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abstract_array_declarator, 3, 0, 21),
   [4291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1793),
   [4293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326),
   [4295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1618),
-  [4297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_output_operand_list, 3, .production_id = 110),
+  [4297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_output_operand_list, 3, 0, 110),
   [4299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236),
-  [4301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_output_operand_list, 2, .production_id = 87),
-  [4303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, .production_id = 48),
+  [4301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_output_operand_list, 2, 0, 87),
+  [4303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, 0, 48),
   [4305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228),
   [4307] = {.entry = {.count = 1, .reusable = false}}, SHIFT(865),
   [4309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1863),
   [4311] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1863),
   [4313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1099),
-  [4315] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__field_declaration_declarator_repeat1, 2, .production_id = 64), SHIFT_REPEAT(1557),
-  [4318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__field_declaration_declarator_repeat1, 2, .production_id = 64),
+  [4315] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__field_declaration_declarator_repeat1, 2, 0, 64), SHIFT_REPEAT(1557),
+  [4318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__field_declaration_declarator_repeat1, 2, 0, 64),
   [4320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208),
-  [4322] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_gnu_asm_input_operand_list_repeat1, 2, .production_id = 124), SHIFT_REPEAT(1686),
-  [4325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_input_operand_list_repeat1, 2, .production_id = 124),
+  [4322] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_gnu_asm_input_operand_list_repeat1, 2, 0, 124), SHIFT_REPEAT(1686),
+  [4325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_input_operand_list_repeat1, 2, 0, 124),
   [4327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207),
   [4329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1599),
-  [4331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_clobber_list, 3, .production_id = 132),
-  [4333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_declaration_declarator, 3, .production_id = 104),
-  [4335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_else_in_enumerator_list_no_comma, 1),
+  [4331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_clobber_list, 3, 0, 132),
+  [4333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_declaration_declarator, 3, 0, 104),
+  [4335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_else_in_enumerator_list_no_comma, 1, 0, 0),
   [4337] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2380),
   [4339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1828),
   [4341] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1828),
@@ -160980,13 +157610,13 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [4349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1908),
   [4351] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2241),
   [4353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204),
-  [4355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_else_in_enumerator_list_no_comma, 2),
-  [4357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_else_in_enumerator_list, 2),
+  [4355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_else_in_enumerator_list_no_comma, 2, 0, 0),
+  [4357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_else_in_enumerator_list, 2, 0, 0),
   [4359] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1377),
   [4361] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1864),
-  [4363] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat1, 2),
-  [4365] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_literal_repeat1, 2), SHIFT_REPEAT(1827),
-  [4368] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat1, 2), SHIFT_REPEAT(1827),
+  [4363] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat1, 2, 0, 0),
+  [4365] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_literal_repeat1, 2, 0, 0), SHIFT_REPEAT(1827),
+  [4368] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat1, 2, 0, 0), SHIFT_REPEAT(1827),
   [4371] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2388),
   [4373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1827),
   [4375] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1827),
@@ -161006,40 +157636,40 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [4403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368),
   [4405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(470),
   [4407] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2401),
-  [4409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_declaration_declarator, 2, .production_id = 47),
-  [4411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_definition_declarators, 2, .production_id = 47),
+  [4409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_declaration_declarator, 2, 0, 47),
+  [4411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_definition_declarators, 2, 0, 47),
   [4413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1978),
   [4415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2376),
   [4417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(887),
-  [4419] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_gnu_asm_clobber_list_repeat1, 2, .production_id = 139), SHIFT_REPEAT(1599),
-  [4422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_clobber_list_repeat1, 2, .production_id = 139),
+  [4419] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_gnu_asm_clobber_list_repeat1, 2, 0, 139), SHIFT_REPEAT(1599),
+  [4422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_clobber_list_repeat1, 2, 0, 139),
   [4424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320),
   [4426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267),
-  [4428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_declaration_declarator, 2, .production_id = 21),
+  [4428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_declaration_declarator, 2, 0, 21),
   [4430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266),
   [4432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(350),
   [4434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309),
-  [4436] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_gnu_asm_output_operand_list_repeat1, 2, .production_id = 124), SHIFT_REPEAT(1618),
-  [4439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_output_operand_list_repeat1, 2, .production_id = 124),
+  [4436] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_gnu_asm_output_operand_list_repeat1, 2, 0, 124), SHIFT_REPEAT(1618),
+  [4439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_output_operand_list_repeat1, 2, 0, 124),
   [4441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1686),
-  [4443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_input_operand_list, 3, .production_id = 110),
+  [4443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_input_operand_list, 3, 0, 110),
   [4445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130),
-  [4447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_input_operand_list, 2, .production_id = 87),
+  [4447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_input_operand_list, 2, 0, 87),
   [4449] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1339),
   [4451] = {.entry = {.count = 1, .reusable = false}}, SHIFT(627),
   [4453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2097),
   [4455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2123),
-  [4457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_qualifier, 1),
+  [4457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_qualifier, 1, 0, 0),
   [4459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2130),
   [4461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2124),
-  [4463] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__type_definition_declarators_repeat1, 2, .production_id = 64), SHIFT_REPEAT(1467),
-  [4466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__type_definition_declarators_repeat1, 2, .production_id = 64),
+  [4463] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__type_definition_declarators_repeat1, 2, 0, 64), SHIFT_REPEAT(1467),
+  [4466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__type_definition_declarators_repeat1, 2, 0, 64),
   [4468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351),
   [4470] = {.entry = {.count = 1, .reusable = false}}, SHIFT(897),
   [4472] = {.entry = {.count = 1, .reusable = false}}, SHIFT(864),
-  [4474] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_char_literal_repeat1, 2),
-  [4476] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_char_literal_repeat1, 2), SHIFT_REPEAT(1864),
-  [4479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_clobber_list, 2, .production_id = 125),
+  [4474] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_char_literal_repeat1, 2, 0, 0),
+  [4476] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_char_literal_repeat1, 2, 0, 0), SHIFT_REPEAT(1864),
+  [4479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_clobber_list, 2, 0, 125),
   [4481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1921),
   [4483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(877),
   [4485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140),
@@ -161048,7 +157678,7 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [4491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(880),
   [4493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108),
   [4495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98),
-  [4497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_declarator, 1, .production_id = 10),
+  [4497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_declarator, 1, 0, 10),
   [4499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101),
   [4501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2089),
   [4503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2061),
@@ -161064,9 +157694,9 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [4523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358),
   [4525] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2044),
   [4527] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2145),
-  [4529] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_repeat2, 2, .production_id = 64), SHIFT_REPEAT(1296),
-  [4532] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_repeat2, 2, .production_id = 64),
-  [4534] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2), SHIFT_REPEAT(701),
+  [4529] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_repeat2, 2, 0, 64), SHIFT_REPEAT(1296),
+  [4532] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_repeat2, 2, 0, 64),
+  [4534] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 0), SHIFT_REPEAT(701),
   [4537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359),
   [4539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231),
   [4541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232),
@@ -161114,7 +157744,7 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [4625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313),
   [4627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138),
   [4629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137),
-  [4631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_output_operand, 4, .production_id = 131),
+  [4631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_output_operand, 4, 0, 131),
   [4633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1157),
   [4635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(367),
   [4637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230),
@@ -161136,25 +157766,25 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [4669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(901),
   [4671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356),
   [4673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(921),
-  [4675] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_output_operand_list_repeat1, 2, .production_id = 87),
-  [4677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_output_operand, 7, .production_id = 144),
+  [4675] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_output_operand_list_repeat1, 2, 0, 87),
+  [4677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_output_operand, 7, 0, 144),
   [4679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307),
   [4681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118),
-  [4683] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_argument_list_repeat1, 2), SHIFT_REPEAT(1349),
+  [4683] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_argument_list_repeat1, 2, 0, 0), SHIFT_REPEAT(1349),
   [4686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(621),
-  [4688] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_gnu_asm_goto_list_repeat1, 2, .production_id = 143), SHIFT_REPEAT(2374),
-  [4691] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_goto_list_repeat1, 2, .production_id = 143),
+  [4688] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_gnu_asm_goto_list_repeat1, 2, 0, 143), SHIFT_REPEAT(2374),
+  [4691] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_goto_list_repeat1, 2, 0, 143),
   [4693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(866),
   [4695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305),
   [4697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2374),
-  [4699] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_goto_list, 3, .production_id = 140),
-  [4701] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_params_repeat1, 2), SHIFT_REPEAT(2070),
-  [4704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_params_repeat1, 2),
+  [4699] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_goto_list, 3, 0, 140),
+  [4701] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preproc_params_repeat1, 2, 0, 0), SHIFT_REPEAT(2070),
+  [4704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preproc_params_repeat1, 2, 0, 0),
   [4706] = {.entry = {.count = 1, .reusable = true}}, SHIFT(868),
   [4708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1589),
-  [4710] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__field_declaration_declarator_repeat1, 3, .production_id = 31),
-  [4712] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_definition_repeat1, 2), SHIFT_REPEAT(2376),
-  [4715] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_definition_repeat1, 2),
+  [4710] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__field_declaration_declarator_repeat1, 3, 0, 31),
+  [4712] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(2376),
+  [4715] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_definition_repeat1, 2, 0, 0),
   [4717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303),
   [4719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(590),
   [4721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268),
@@ -161163,8 +157793,8 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [4727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295),
   [4729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(469),
   [4731] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1310),
-  [4733] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2), SHIFT_REPEAT(684),
-  [4736] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2),
+  [4733] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2, 0, 0), SHIFT_REPEAT(684),
+  [4736] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2, 0, 0),
   [4738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(882),
   [4740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274),
   [4742] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2381),
@@ -161177,11 +157807,11 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [4756] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281),
   [4758] = {.entry = {.count = 1, .reusable = true}}, SHIFT(684),
   [4760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1485),
-  [4762] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_clobber_list_repeat1, 2, .production_id = 125),
+  [4762] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_clobber_list_repeat1, 2, 0, 125),
   [4764] = {.entry = {.count = 1, .reusable = true}}, SHIFT(910),
-  [4766] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_input_operand, 4, .production_id = 131),
-  [4768] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_generic_expression_repeat1, 2), SHIFT_REPEAT(1222),
-  [4771] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_generic_expression_repeat1, 2),
+  [4766] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_input_operand, 4, 0, 131),
+  [4768] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_generic_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(1222),
+  [4771] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_generic_expression_repeat1, 2, 0, 0),
   [4773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408),
   [4775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(873),
   [4777] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2321),
@@ -161189,16 +157819,16 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [4781] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2320),
   [4783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180),
   [4785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272),
-  [4787] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_designator, 2, .production_id = 100),
+  [4787] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_designator, 2, 0, 100),
   [4789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1491),
   [4791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(970),
   [4793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(686),
-  [4795] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_input_operand, 7, .production_id = 144),
+  [4795] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_input_operand, 7, 0, 144),
   [4797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(638),
   [4799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322),
-  [4801] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_initializer_list_repeat1, 2), SHIFT_REPEAT(697),
+  [4801] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_initializer_list_repeat1, 2, 0, 0), SHIFT_REPEAT(697),
   [4804] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1854),
-  [4806] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subscript_designator, 3),
+  [4806] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subscript_designator, 3, 0, 0),
   [4808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312),
   [4810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(874),
   [4812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1556),
@@ -161207,7 +157837,7 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [4818] = {.entry = {.count = 1, .reusable = true}}, SHIFT(956),
   [4820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1097),
   [4822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(588),
-  [4824] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subscript_range_designator, 5, .production_id = 136),
+  [4824] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subscript_range_designator, 5, 0, 136),
   [4826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2125),
   [4828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(952),
   [4830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(975),
@@ -161232,18 +157862,18 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [4868] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2339),
   [4870] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420),
   [4872] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2260),
-  [4874] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_layout_qualifiers_repeat1, 2), SHIFT_REPEAT(1967),
-  [4877] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_layout_qualifiers_repeat1, 2),
-  [4879] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_goto_list, 2, .production_id = 133),
+  [4874] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_layout_qualifiers_repeat1, 2, 0, 0), SHIFT_REPEAT(1967),
+  [4877] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_layout_qualifiers_repeat1, 2, 0, 0),
+  [4879] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_goto_list, 2, 0, 133),
   [4881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(896),
   [4883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1107),
   [4885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1105),
   [4887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1101),
   [4889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(695),
-  [4891] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_qualifier, 1),
+  [4891] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_qualifier, 1, 0, 0),
   [4893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(748),
-  [4895] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attribute_declaration_repeat1, 2), SHIFT_REPEAT(2063),
-  [4898] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attribute_declaration_repeat1, 2),
+  [4895] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attribute_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(2063),
+  [4898] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attribute_declaration_repeat1, 2, 0, 0),
   [4900] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1096),
   [4902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1095),
   [4904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1112),
@@ -161253,35 +157883,35 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [4912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1094),
   [4914] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1103),
   [4916] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1093),
-  [4918] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_input_operand_list_repeat1, 2, .production_id = 87),
+  [4918] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_input_operand_list_repeat1, 2, 0, 87),
   [4920] = {.entry = {.count = 1, .reusable = true}}, SHIFT(875),
   [4922] = {.entry = {.count = 1, .reusable = true}}, SHIFT(732),
   [4924] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142),
   [4926] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2192),
-  [4928] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 2, .production_id = 5),
+  [4928] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 2, 0, 5),
   [4930] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1797),
   [4932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(474),
   [4934] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2389),
   [4936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1774),
-  [4938] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_params, 2),
-  [4940] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_params, 2),
+  [4938] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_params, 2, 0, 0),
+  [4940] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_params, 2, 0, 0),
   [4942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(643),
   [4944] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2305),
   [4946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2126),
-  [4948] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_params, 3),
-  [4950] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_params, 3),
+  [4948] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_params, 3, 0, 0),
+  [4950] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_params, 3, 0, 0),
   [4952] = {.entry = {.count = 1, .reusable = true}}, SHIFT(661),
   [4954] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2409),
   [4956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(742),
-  [4958] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variadic_parameter, 1),
+  [4958] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variadic_parameter, 1, 0, 0),
   [4960] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2037),
-  [4962] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_goto_list, 1),
+  [4962] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gnu_asm_goto_list, 1, 0, 0),
   [4964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1404),
   [4966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2404),
-  [4968] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_goto_list_repeat1, 2, .production_id = 133),
+  [4968] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gnu_asm_goto_list_repeat1, 2, 0, 133),
   [4970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(447),
   [4972] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2283),
-  [4974] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_repeat2, 4, .production_id = 116),
+  [4974] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_repeat2, 4, 0, 116),
   [4976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1882),
   [4978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(651),
   [4980] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2232),
@@ -161289,15 +157919,15 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [4984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1344),
   [4986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2177),
   [4988] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1030),
-  [4990] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 4, .production_id = 48),
+  [4990] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 4, 0, 48),
   [4992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(449),
   [4994] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2219),
   [4996] = {.entry = {.count = 1, .reusable = true}}, SHIFT(613),
   [4998] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2233),
   [5000] = {.entry = {.count = 1, .reusable = true}}, SHIFT(665),
   [5002] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2228),
-  [5004] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_params, 4),
-  [5006] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_params, 4),
+  [5004] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_params, 4, 0, 0),
+  [5006] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preproc_params, 4, 0, 0),
   [5008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(604),
   [5010] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2240),
   [5012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1201),
@@ -161327,7 +157957,7 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [5060] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
   [5062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66),
   [5064] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2218),
-  [5066] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ms_based_modifier, 2),
+  [5066] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ms_based_modifier, 2, 0, 0),
   [5068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(899),
   [5070] = {.entry = {.count = 1, .reusable = true}}, SHIFT(770),
   [5072] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2296),
@@ -161364,8 +157994,8 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [5134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430),
   [5136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1165),
   [5138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(662),
-  [5140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif, 4, .production_id = 69),
-  [5142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef, 4, .production_id = 70),
+  [5140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif, 4, 0, 69),
+  [5142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef, 4, 0, 70),
   [5144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1835),
   [5146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
   [5148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(667),
@@ -161387,7 +158017,7 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [5180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105),
   [5182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288),
   [5184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(630),
-  [5186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_enumerator_list_no_comma, 4, .production_id = 39),
+  [5186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_enumerator_list_no_comma, 4, 0, 39),
   [5188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187),
   [5190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298),
   [5192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(505),
@@ -161400,7 +158030,7 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [5206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1568),
   [5208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1757),
   [5210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(641),
-  [5212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_enumerator_list_no_comma, 4, .production_id = 16),
+  [5212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_enumerator_list_no_comma, 4, 0, 16),
   [5214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301),
   [5216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302),
   [5218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(628),
@@ -161430,52 +158060,52 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [5266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(909),
   [5268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(589),
   [5270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(652),
-  [5272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif, 5, .production_id = 98),
+  [5272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif, 5, 0, 98),
   [5274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(703),
   [5276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(521),
   [5278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(439),
-  [5280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_enumerator_list_no_comma, 5, .production_id = 69),
+  [5280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_enumerator_list_no_comma, 5, 0, 69),
   [5282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1772),
-  [5284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_enumerator_list_no_comma, 5, .production_id = 38),
+  [5284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_enumerator_list_no_comma, 5, 0, 38),
   [5286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2337),
-  [5288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_enumerator_list, 3, .production_id = 39),
-  [5290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_enumerator_list_no_comma, 3, .production_id = 39),
+  [5288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_enumerator_list, 3, 0, 39),
+  [5290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_enumerator_list_no_comma, 3, 0, 39),
   [5292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(663),
   [5294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1829),
   [5296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(451),
   [5298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1792),
-  [5300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_enumerator_list_no_comma, 5, .production_id = 70),
+  [5300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_ifdef_in_enumerator_list_no_comma, 5, 0, 70),
   [5302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197),
   [5304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1877),
   [5306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1876),
   [5308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(726),
   [5310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(654),
-  [5312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_field_declaration_list, 3, .production_id = 39),
+  [5312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_field_declaration_list, 3, 0, 39),
   [5314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1930),
   [5316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1733),
   [5318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73),
   [5320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(867),
   [5322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186),
-  [5324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_enumerator_list_no_comma, 6, .production_id = 98),
-  [5326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_enumerator_list, 4, .production_id = 69),
+  [5324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_if_in_enumerator_list_no_comma, 6, 0, 98),
+  [5326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_enumerator_list, 4, 0, 69),
   [5328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1776),
   [5330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(709),
-  [5332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_enumerator_list_no_comma, 4, .production_id = 69),
-  [5334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_enumerator_list, 4, .production_id = 70),
-  [5336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef, 3, .production_id = 39),
+  [5332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_enumerator_list_no_comma, 4, 0, 69),
+  [5334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_enumerator_list, 4, 0, 70),
+  [5336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef, 3, 0, 39),
   [5338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2138),
-  [5340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_enumerator_list_no_comma, 4, .production_id = 70),
+  [5340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_enumerator_list_no_comma, 4, 0, 70),
   [5342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(437),
   [5344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2406),
-  [5346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_field_declaration_list, 4, .production_id = 69),
-  [5348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_field_declaration_list, 4, .production_id = 70),
+  [5346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_field_declaration_list, 4, 0, 69),
+  [5348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elifdef_in_field_declaration_list, 4, 0, 70),
   [5350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(476),
   [5352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2363),
   [5354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269),
   [5356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(869),
-  [5358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_enumerator_list, 5, .production_id = 98),
-  [5360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_enumerator_list_no_comma, 5, .production_id = 98),
-  [5362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_field_declaration_list, 5, .production_id = 98),
+  [5358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_enumerator_list, 5, 0, 98),
+  [5360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_enumerator_list_no_comma, 5, 0, 98),
+  [5362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preproc_elif_in_field_declaration_list, 5, 0, 98),
   [5364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71),
   [5366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(765),
   [5368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2375),
@@ -161484,7 +158114,7 @@ static const TSParseActionEntry ts_parse_actions[] = {
   [5374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(457),
   [5376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2105),
   [5378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1839),
-  [5380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extension_behavior, 1),
+  [5380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extension_behavior, 1, 0, 0),
   [5382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(753),
   [5384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(463),
   [5386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2074),
@@ -161534,7 +158164,7 @@ extern "C" {
 #define TS_PUBLIC __attribute__((visibility("default")))
 #endif
 
-TS_PUBLIC const TSLanguage *tree_sitter_glsl() {
+TS_PUBLIC const TSLanguage *tree_sitter_glsl(void) {
   static const TSLanguage language = {
     .version = LANGUAGE_VERSION,
     .symbol_count = SYMBOL_COUNT,
diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h
index 17b4fde..17f0e94 100644
--- a/src/tree_sitter/parser.h
+++ b/src/tree_sitter/parser.h
@@ -86,6 +86,11 @@ typedef union {
   } entry;
 } TSParseActionEntry;
 
+typedef struct {
+  int32_t start;
+  int32_t end;
+} TSCharacterRange;
+
 struct TSLanguage {
   uint32_t version;
   uint32_t symbol_count;
@@ -125,6 +130,24 @@ struct TSLanguage {
   const TSStateId *primary_state_ids;
 };
 
+static inline bool set_contains(TSCharacterRange *ranges, uint32_t len, int32_t lookahead) {
+  uint32_t index = 0;
+  uint32_t size = len - index;
+  while (size > 1) {
+    uint32_t half_size = size / 2;
+    uint32_t mid_index = index + half_size;
+    TSCharacterRange *range = &ranges[mid_index];
+    if (lookahead >= range->start && lookahead <= range->end) {
+      return true;
+    } else if (lookahead > range->end) {
+      index = mid_index;
+    }
+    size -= half_size;
+  }
+  TSCharacterRange *range = &ranges[index];
+  return (lookahead >= range->start && lookahead <= range->end);
+}
+
 /*
  *  Lexer Macros
  */
@@ -154,6 +177,17 @@ struct TSLanguage {
     goto next_state;         \
   }
 
+#define ADVANCE_MAP(...)                                              \
+  {                                                                   \
+    static const uint16_t map[] = { __VA_ARGS__ };                    \
+    for (uint32_t i = 0; i < sizeof(map) / sizeof(map[0]); i += 2) {  \
+      if (map[i] == lookahead) {                                      \
+        state = map[i + 1];                                           \
+        goto next_state;                                              \
+      }                                                               \
+    }                                                                 \
+  }
+
 #define SKIP(state_value) \
   {                       \
     skip = true;          \
@@ -203,14 +237,15 @@ struct TSLanguage {
     }                                 \
   }}
 
-#define REDUCE(symbol_val, child_count_val, ...) \
-  {{                                             \
-    .reduce = {                                  \
-      .type = TSParseActionTypeReduce,           \
-      .symbol = symbol_val,                      \
-      .child_count = child_count_val,            \
-      __VA_ARGS__                                \
-    },                                           \
+#define REDUCE(symbol_name, children, precedence, prod_id) \
+  {{                                                       \
+    .reduce = {                                            \
+      .type = TSParseActionTypeReduce,                     \
+      .symbol = symbol_name,                               \
+      .child_count = children,                             \
+      .dynamic_precedence = precedence,                    \
+      .production_id = prod_id                             \
+    },                                                     \
   }}
 
 #define RECOVER()                    \